git-svn-id: https://svn.coded.pt/svn/SIPRP@1239 bb69d46d-e84e-40c8-a05a-06db0d633741

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
Tiago Simão 16 years ago
parent a2d7631c0d
commit 8c4de126bc

@ -8,6 +8,9 @@ import java.awt.Insets;
import java.awt.Toolkit; import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.Enumeration;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.JLabel; import javax.swing.JLabel;
@ -21,6 +24,7 @@ import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel; import javax.swing.tree.TreeSelectionModel;
import com.evolute.adt.TreeTools; import com.evolute.adt.TreeTools;
import com.evolute.utils.error.ErrorLogger;
import com.evolute.utils.images.ImageException; import com.evolute.utils.images.ImageException;
import com.evolute.utils.images.ImageIconLoader; import com.evolute.utils.images.ImageIconLoader;
@ -31,7 +35,7 @@ public class TreeInserterDialog extends JDialog
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final Dimension DIALOG_DEFAULT_DIMENSIONS = new Dimension(800,500); private static final Dimension DIALOG_DEFAULT_DIMENSIONS = new Dimension( 800, 500 );
private static final String ICON_NAME_ADD = "leaf/ui/icons/add.png"; private static final String ICON_NAME_ADD = "leaf/ui/icons/add.png";
@ -41,7 +45,7 @@ public class TreeInserterDialog extends JDialog
private final DefaultTreeModel newModel = new DefaultTreeModel( newRoot ); private final DefaultTreeModel newModel = new DefaultTreeModel( newRoot );
private final JTree newTree = new JTree(newModel); private final JTree newTree = new JTree( newModel );
private final JScrollPane newScroll = new JScrollPane( newTree ); private final JScrollPane newScroll = new JScrollPane( newTree );
@ -61,6 +65,8 @@ public class TreeInserterDialog extends JDialog
private final LeafButton buttonCancel = new LeafButton( "Cancelar" ); private final LeafButton buttonCancel = new LeafButton( "Cancelar" );
private static List<Object> expandedNodes = new LinkedList<Object>();
public TreeInserterDialog( String title, DefaultMutableTreeNode root ) public TreeInserterDialog( String title, DefaultMutableTreeNode root )
{ {
this.allRoot = root; this.allRoot = root;
@ -74,13 +80,13 @@ public class TreeInserterDialog extends JDialog
buttonRemove = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_REM ) ); buttonRemove = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_REM ) );
} catch( ImageException e ) } catch( ImageException e )
{ {
e.printStackTrace(); ErrorLogger.logException( e );
} }
startupComponents(); startupComponents();
setupLayout(); setupLayout();
placeComponents(); placeComponents();
startupListeners(); startupListeners();
TreeTools.refreshTree(allTree, allRoot, true); loadExpansionState();
setEnabled(); setEnabled();
Toolkit tk = Toolkit.getDefaultToolkit(); Toolkit tk = Toolkit.getDefaultToolkit();
if( tk != null ) if( tk != null )
@ -96,6 +102,15 @@ public class TreeInserterDialog extends JDialog
this.setVisible( true ); this.setVisible( true );
} }
private void loadExpansionState()
{
TreeTools.refreshTree( allTree, allRoot, expandedNodes.isEmpty() );
for( Object userObject : expandedNodes )
{
TreeTools.expandNodeForObject( userObject, allTree );
}
}
private void startupComponents() private void startupComponents()
{ {
newTree.setRootVisible( false ); newTree.setRootVisible( false );
@ -106,8 +121,6 @@ public class TreeInserterDialog extends JDialog
allScroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); allScroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
newScroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS ); newScroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
newScroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); newScroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
// allScroll.setPreferredSize( ALL_DIMENSION );
// newScroll.setPreferredSize( NEW_DIMENSION );
buttonAdd.setToolTipText( "Adicionar" ); buttonAdd.setToolTipText( "Adicionar" );
buttonRemove.setToolTipText( "Remover" ); buttonRemove.setToolTipText( "Remover" );
buttonAdd.setMargin( new Insets(0,0,0,0) ); buttonAdd.setMargin( new Insets(0,0,0,0) );
@ -253,6 +266,7 @@ public class TreeInserterDialog extends JDialog
private void close() private void close()
{ {
saveExpandedState();
setVisible( false ); setVisible( false );
} }
@ -271,4 +285,45 @@ public class TreeInserterDialog extends JDialog
return newRoot; return newRoot;
} }
private void saveExpandedState( )
{
expandedNodes.clear();
if( allTree != null )
{
Object root = allTree.getModel().getRoot();
if( root != null )
{
savePath( new TreePath(root) );
}
}
}
private void savePath( TreePath treePath )
{
if( treePath != null )
{
Enumeration<TreePath> expanded = allTree.getExpandedDescendants(treePath);
if( expanded != null )
{
while( expanded.hasMoreElements() )
{
TreePath path = expanded.nextElement();
if( path != null )
{
Object leaf = path.getLastPathComponent();
if( leaf instanceof DefaultMutableTreeNode )
{
Object userObject = ((DefaultMutableTreeNode)leaf).getUserObject();
if( userObject != null )
{
expandedNodes.add(userObject);
}
}
}
savePath(path);
}
}
}
}
} }

@ -243,17 +243,20 @@ public class TreeTools
public static void expandNodeForObject(Object userObject, JTree tree ) public static void expandNodeForObject(Object userObject, JTree tree )
{ {
DefaultMutableTreeNode on = getRoot( tree ); Object root = getRoot( tree );
DefaultMutableTreeNode found = findNodeWithUserObject(userObject, on); if( tree != null && userObject != null && ( root instanceof DefaultMutableTreeNode ) )
{
DefaultMutableTreeNode found = findNodeWithUserObject(userObject, (DefaultMutableTreeNode) root);
if( found != null ) if( found != null )
{ {
TreePath path = getPathFor(found); TreePath path = getPathFor( found );
if( path != null ) if( path != null )
{ {
tree.expandPath( path ); tree.expandPath( path );
} }
} }
} }
}

Loading…
Cancel
Save