mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
210
ParaView-5.0.1/VTK/Examples/Infovis/Java/TreeViews.java
Normal file
210
ParaView-5.0.1/VTK/Examples/Infovis/Java/TreeViews.java
Normal file
@ -0,0 +1,210 @@
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.io.File;
|
||||
import java.util.Random;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
|
||||
import vtk.*;
|
||||
|
||||
public class TreeViews extends JFrame {
|
||||
|
||||
private vtkRenderWindowPanel panel1;
|
||||
private vtkRenderWindowPanel panel2;
|
||||
private vtkRenderWindowPanel panel3;
|
||||
private vtkRenderWindowPanel panel4;
|
||||
|
||||
private vtkXMLTreeReader reader = new vtkXMLTreeReader();
|
||||
private vtkTreeLevelsFilter levels = new vtkTreeLevelsFilter();
|
||||
|
||||
private vtkGraphLayoutView view1;
|
||||
private vtkGraphLayoutView view2;
|
||||
private vtkGraphLayoutView view3;
|
||||
private vtkTreeMapView view4;
|
||||
|
||||
public TreeViews() {
|
||||
// Create a random tree
|
||||
// The tree has a "name" field to use for labels.
|
||||
// It also has a "level" field to use for colors.
|
||||
vtkStringArray nameArr = new vtkStringArray();
|
||||
nameArr.SetName("name");
|
||||
// Start by adding a root to the tree
|
||||
vtkMutableDirectedGraph g = new vtkMutableDirectedGraph();
|
||||
g.AddVertex();
|
||||
nameArr.InsertNextValue("0");
|
||||
Random r = new Random();
|
||||
for (int i = 1; i < 100; ++i) {
|
||||
// Add a child to a random vertex in the tree.
|
||||
g.AddChild(r.nextInt(i));
|
||||
nameArr.InsertNextValue("" + i);
|
||||
}
|
||||
g.GetVertexData().AddArray(nameArr);
|
||||
|
||||
vtkTree tree = new vtkTree();
|
||||
tree.ShallowCopy(g);
|
||||
levels.SetInputData(tree);
|
||||
|
||||
// Create the selection link.
|
||||
// This is shared among all views in order to link the selection.
|
||||
vtkAnnotationLink link = new vtkAnnotationLink();
|
||||
|
||||
// Create a graph layout view.
|
||||
// This view performs an automatic embedding of the graph in 2D.
|
||||
// Label by name, color by level.
|
||||
view1 = new vtkGraphLayoutView();
|
||||
vtkDataRepresentation rep1 = view1.AddRepresentationFromInputConnection(levels.GetOutputPort());
|
||||
panel1 = new vtkRenderWindowPanel(view1.GetRenderWindow());
|
||||
view1.SetVertexLabelArrayName("name");
|
||||
view1.VertexLabelVisibilityOn();
|
||||
view1.SetVertexColorArrayName("level");
|
||||
view1.ColorVerticesOn();
|
||||
view1.ResetCamera();
|
||||
// Link the selection.
|
||||
rep1.SetAnnotationLink(link);
|
||||
|
||||
// Create a standard tree layout view.
|
||||
// The standard tree layout arranges the vertices of a tree in horizontal
|
||||
// levels.
|
||||
// Label by name, color by level.
|
||||
view2 = new vtkGraphLayoutView();
|
||||
vtkDataRepresentation rep2 = view2.AddRepresentationFromInputConnection(levels.GetOutputPort());
|
||||
panel2 = new vtkRenderWindowPanel(view2.GetRenderWindow());
|
||||
view2.SetVertexLabelArrayName("name");
|
||||
view2.VertexLabelVisibilityOn();
|
||||
view2.SetVertexColorArrayName("level");
|
||||
view2.ColorVerticesOn();
|
||||
view2.ResetCamera();
|
||||
// Link the selection.
|
||||
rep2.SetAnnotationLink(link);
|
||||
|
||||
// Create a radial tree layout view.
|
||||
// The radial tree layout arranges the vertices of a tree in concentric
|
||||
// circles.
|
||||
// Label by name, color by level.
|
||||
view3 = new vtkGraphLayoutView();
|
||||
vtkDataRepresentation rep3 = view3.AddRepresentationFromInputConnection(levels.GetOutputPort());
|
||||
panel3 = new vtkRenderWindowPanel(view3.GetRenderWindow());
|
||||
vtkTreeLayoutStrategy layout3 = new vtkTreeLayoutStrategy();
|
||||
layout3.RadialOn();
|
||||
layout3.SetAngle(360);
|
||||
layout3.SetLeafSpacing(0.3);
|
||||
view3.SetLayoutStrategy(layout3);
|
||||
view3.SetVertexLabelArrayName("name");
|
||||
view3.VertexLabelVisibilityOn();
|
||||
view3.SetVertexColorArrayName("level");
|
||||
view3.ColorVerticesOn();
|
||||
view3.ResetCamera();
|
||||
// Link the selection.
|
||||
rep3.SetAnnotationLink(link);
|
||||
|
||||
// Create a tree map view.
|
||||
view4 = new vtkTreeMapView();
|
||||
vtkDataRepresentation rep4 = view4.AddRepresentationFromInputConnection(levels.GetOutputPort());
|
||||
panel4 = new vtkRenderWindowPanel(view4.GetRenderWindow());
|
||||
// Link the selection.
|
||||
rep4.SetAnnotationLink(link);
|
||||
view4.ResetCamera();
|
||||
|
||||
// Use a simple ViewChangedObserver to render all views
|
||||
// when the selection in one view changes.
|
||||
ViewChangedObserver obs = new ViewChangedObserver();
|
||||
link.AddObserver("SelectionChangedEvent", obs, "SelectionChanged");
|
||||
|
||||
// Arrange the views in a grid.
|
||||
GridLayout layout = new GridLayout(2, 2);
|
||||
layout.setHgap(5);
|
||||
layout.setVgap(5);
|
||||
this.setLayout(layout);
|
||||
this.add(panel1);
|
||||
this.add(panel2);
|
||||
this.add(panel3);
|
||||
this.add(panel4);
|
||||
|
||||
// Create menu
|
||||
JMenuBar menuBar;
|
||||
JMenu menu;
|
||||
JMenuItem menuItem;
|
||||
|
||||
// Create the menu bar.
|
||||
menuBar = new JMenuBar();
|
||||
|
||||
// Build the first menu.
|
||||
menu = new JMenu("File");
|
||||
menu.setMnemonic(KeyEvent.VK_F);
|
||||
menuBar.add(menu);
|
||||
|
||||
// A JMenuItem
|
||||
menuItem = new JMenuItem("Open XML...", KeyEvent.VK_X);
|
||||
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
|
||||
ActionEvent.CTRL_MASK));
|
||||
menuItem.addActionListener(new ActionListener() {
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// Create a file chooser
|
||||
final JFileChooser fc = new JFileChooser();
|
||||
FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files (*.xml)", "xml");
|
||||
fc.setFileFilter(filter);
|
||||
// In response to a button click:
|
||||
int returnVal = fc.showOpenDialog(null);
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||
File f = fc.getSelectedFile();
|
||||
reader.SetFileName(f.getAbsolutePath());
|
||||
levels.SetInputConnection(reader.GetOutputPort());
|
||||
ViewChangedObserver obs = new ViewChangedObserver();
|
||||
obs.SelectionChanged();
|
||||
}
|
||||
}});
|
||||
menu.add(menuItem);
|
||||
|
||||
this.setJMenuBar(menuBar);
|
||||
}
|
||||
|
||||
private class ViewChangedObserver {
|
||||
// When a selection changes, render all views.
|
||||
void SelectionChanged() {
|
||||
view1.Update();
|
||||
view2.Update();
|
||||
view3.Update();
|
||||
view4.Update();
|
||||
panel1.Render();
|
||||
panel2.Render();
|
||||
panel3.Render();
|
||||
panel4.Render();
|
||||
}
|
||||
}
|
||||
|
||||
// Load VTK library and print which library was not properly loaded
|
||||
static {
|
||||
if (!vtkNativeLibrary.LoadAllNativeLibraries()) {
|
||||
for (vtkNativeLibrary lib : vtkNativeLibrary.values()) {
|
||||
if (!lib.IsLoaded()) {
|
||||
System.out.println(lib.GetLibraryName() + " not loaded");
|
||||
}
|
||||
}
|
||||
}
|
||||
vtkNativeLibrary.DisableOutputWindow(null);
|
||||
}
|
||||
|
||||
public static void main(String args[]) {
|
||||
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
|
||||
|
||||
TreeViews app = new TreeViews();
|
||||
app.setTitle("Tree Views");
|
||||
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
app.pack();
|
||||
app.setVisible(true);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user