|
@@ -20,7 +20,10 @@ import javax.swing.JFileChooser;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JLayeredPane;
|
|
import javax.swing.JLayeredPane;
|
|
|
|
+import javax.swing.JMenu;
|
|
|
|
+import javax.swing.JMenuItem;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JPanel;
|
|
|
|
+import javax.swing.JPopupMenu;
|
|
import javax.swing.JScrollPane;
|
|
import javax.swing.JScrollPane;
|
|
import javax.swing.JSplitPane;
|
|
import javax.swing.JSplitPane;
|
|
import javax.swing.JTextArea;
|
|
import javax.swing.JTextArea;
|
|
@@ -438,6 +441,105 @@ public class MainView {
|
|
pseudoTree.repaint();
|
|
pseudoTree.repaint();
|
|
frame.repaint();
|
|
frame.repaint();
|
|
}
|
|
}
|
|
|
|
+ if( e.getButton() == MouseEvent.BUTTON3 )
|
|
|
|
+ {
|
|
|
|
+ JPopupMenu menu = new JPopupMenu();
|
|
|
|
+ JMenu expandM = new JMenu( "expand ..." );
|
|
|
|
+ JMenuItem exAll = new JMenuItem( "all" );
|
|
|
|
+ exAll.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = 0; i < pseudoTree.getRowCount(); i++ )
|
|
|
|
+ pseudoTree.expandRow( i );
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ expandM.add( exAll );
|
|
|
|
+ JMenuItem exTop = new JMenuItem( "top level lines" );
|
|
|
|
+ exTop.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = 0; i < pseudoTree.getRowCount(); i++ )
|
|
|
|
+ {
|
|
|
|
+ if( pseudoTree.getPathForRow( i ).getPathCount() < 3 )
|
|
|
|
+ pseudoTree.expandRow( i );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ expandM.add( exTop );
|
|
|
|
+ JMenuItem exSec = new JMenuItem( "second level lines" );
|
|
|
|
+ exSec.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = 0; i < pseudoTree.getRowCount(); i++ )
|
|
|
|
+ {
|
|
|
|
+ if( pseudoTree.getPathForRow( i ).getPathCount() < 4 )
|
|
|
|
+ pseudoTree.expandRow( i );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ expandM.add( exSec );
|
|
|
|
+ JMenuItem exThi = new JMenuItem( "third level lines" );
|
|
|
|
+ exThi.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = 0; i < pseudoTree.getRowCount(); i++ )
|
|
|
|
+ {
|
|
|
|
+ if( pseudoTree.getPathForRow( i ).getPathCount() < 5 )
|
|
|
|
+ pseudoTree.expandRow( i );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ expandM.add( exThi );
|
|
|
|
+ menu.add( expandM );
|
|
|
|
+ JMenu collapsM = new JMenu( "collapse ..." );
|
|
|
|
+ JMenuItem colAll = new JMenuItem( "all" );
|
|
|
|
+ colAll.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = pseudoTree.getRowCount() - 1; i > 0; i-- )
|
|
|
|
+ pseudoTree.collapseRow( i );
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ collapsM.add( colAll );
|
|
|
|
+ JMenuItem colTop = new JMenuItem( "top level lines" );
|
|
|
|
+ colTop.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = pseudoTree.getRowCount() - 1; i > 0; i-- )
|
|
|
|
+ {
|
|
|
|
+ if( pseudoTree.getPathForRow( i ).getPathCount() >= 2 )
|
|
|
|
+ pseudoTree.collapseRow( i );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ collapsM.add( colTop );
|
|
|
|
+ JMenuItem colSec = new JMenuItem( "second level lines" );
|
|
|
|
+ colSec.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = pseudoTree.getRowCount() - 1; i > 0; i-- )
|
|
|
|
+ {
|
|
|
|
+ if( pseudoTree.getPathForRow( i ).getPathCount() >= 3 )
|
|
|
|
+ pseudoTree.collapseRow( i );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ collapsM.add( colSec );
|
|
|
|
+ JMenuItem colThi = new JMenuItem( "third level lines" );
|
|
|
|
+ colThi.addActionListener( new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ for( int i = pseudoTree.getRowCount() - 1; i > 0; i-- )
|
|
|
|
+ {
|
|
|
|
+ if( pseudoTree.getPathForRow( i ).getPathCount() >= 4 )
|
|
|
|
+ pseudoTree.collapseRow( i );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ collapsM.add( colThi );
|
|
|
|
+ menu.add( collapsM );
|
|
|
|
+ menu.show( e.getComponent(), e.getX(), e.getY() );
|
|
|
|
+ }
|
|
}
|
|
}
|
|
} );
|
|
} );
|
|
pseudoTree.setRowHeight(15);
|
|
pseudoTree.setRowHeight(15);
|