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

lxbfYeaa
Diogo Neves 15 years ago
parent a7942c8940
commit 5a0786cfbc

@ -29,19 +29,14 @@ public class DnDRiscosListener implements DropTargetListener
@Override @Override
public void dragEnter(DropTargetDragEvent dtde) public void dragEnter( DropTargetDragEvent dtde )
{ {
DefaultMutableTreeNode node = ( ( DefaultMutableTreeNode ) tree.getSelectionPath().getParentPath().getLastPathComponent() ); DefaultMutableTreeNode node = ( ( DefaultMutableTreeNode ) tree.getSelectionPath().getParentPath().getLastPathComponent() );
if ( node.getUserObject() == null ) drag = node.getUserObject() != null;
if ( ! drag )
{ {
drag = false;
dtde.rejectDrag(); dtde.rejectDrag();
} }
else
{
drag = true;
}
} }
@Override @Override
@ -50,92 +45,90 @@ public class DnDRiscosListener implements DropTargetListener
} }
@Override @Override
public void dragOver(DropTargetDragEvent dtde) public void dragOver( DropTargetDragEvent dtde )
{ {
Point pt = dtde.getLocation(); Point pt = dtde.getLocation();
tree.autoscroll( pt ); tree.autoscroll( pt );
if( drag ) if ( drag )
{ {
TreePath parentpath = tree.getClosestPathForLocation(pt.x, pt.y); TreePath sourcePath = tree.getClosestPathForLocation( pt.x, pt.y );
Object destObject = ( (DefaultMutableTreeNode )parentpath.getLastPathComponent() ).getUserObject(); Object destObject = ( ( DefaultMutableTreeNode ) sourcePath.getLastPathComponent() ).getUserObject();
if( tree.getSelectedMedida() != null && ( destObject instanceof HsRiscoTemaData ) ) if ( tree.getSelectedMedida() != null && ( destObject instanceof HsRiscoTemaData ) )
{ {
tree.expandPath( parentpath ); tree.expandPath( sourcePath );
} }
} }
} }
@Override @Override
public void drop(DropTargetDropEvent dtde) public void drop( DropTargetDropEvent dtde )
{ {
System.out.println( "Drop" );
Point pt = dtde.getLocation(); Point pt = dtde.getLocation();
TreePath destinyPath = tree.getClosestPathForLocation(pt.x, pt.y); TreePath destinationPath = tree.getClosestPathForLocation( pt.x, pt.y );
Object destinyComponent = destinyPath.getLastPathComponent(); Object destinationComponent = destinationPath.getLastPathComponent();
System.out.println( destinyPath ); System.out.println( destinationPath );
System.out.println( ); System.out.println( );
if( destinyComponent instanceof DefaultMutableTreeNode ) if( destinationComponent instanceof DefaultMutableTreeNode )
{ {
System.out.println("moving node ..."); System.out.println("moving node ...");
DefaultMutableTreeNode destinyNode = ( DefaultMutableTreeNode ) destinyComponent; DefaultMutableTreeNode destinationNode = ( DefaultMutableTreeNode ) destinationComponent;
Object destinyObject = destinyNode.getUserObject(); Object destinationObject = destinationNode.getUserObject();
TreePath parentPath = tree.getSelectionPath(); TreePath sourcePath = tree.getSelectionPath();
Object parentComponent = parentPath.getLastPathComponent(); Object sourceComponent = sourcePath.getLastPathComponent();
if( parentComponent instanceof DefaultMutableTreeNode ) if( sourceComponent instanceof DefaultMutableTreeNode )
{ {
DefaultMutableTreeNode parentNode = ( DefaultMutableTreeNode ) parentComponent; DefaultMutableTreeNode sourceNode = ( DefaultMutableTreeNode ) sourceComponent;
Object parentObject = parentNode.getUserObject(); Object sourceObject = sourceNode.getUserObject();
if( destinyObject instanceof HsRiscoTemaData ) if( destinationObject instanceof HsRiscoTemaData )
{ { // something -> tema
System.out.println("\tmove risco -> tema"); if ( sourceObject instanceof HsRiscoData )
HsRiscoTemaData destTema = ( HsRiscoTemaData ) destinyObject; { // risco -> tema
System.out.println("\tmove risco -> tema");
if ( parentObject instanceof HsRiscoData )
{ HsRiscoTemaData destTema = ( HsRiscoTemaData ) destinationObject;
moveRisco( destinyNode, parentNode, parentObject, destTema ); moveRisco( destinationNode, sourceNode, sourceObject, destTema );
} }
} }
else if( destinyObject instanceof HsRiscoData ) else if( destinationObject instanceof HsRiscoData )
{ { // something -> risco
if ( parentObject instanceof HsRiscoData ) if ( sourceObject instanceof HsRiscoMedidaData )
{ { // medida -> risco
destinyComponent = destinyPath.getParentPath().getLastPathComponent(); System.out.println("\tmove medida -> risco");
destinyNode = ( DefaultMutableTreeNode )destinyComponent; HsRiscoData destRisco = ( HsRiscoData ) destinationObject;
destinyObject = destinyNode.getUserObject();
HsRiscoTemaData destTema = ( HsRiscoTemaData ) destinyObject;
moveRisco( destinyNode, parentNode, parentObject, destTema ); moveMedida( destinationNode, sourceNode, sourceObject, destRisco );
} }
} else if( sourceObject instanceof HsRiscoData )
else if( destinyObject instanceof HsRiscoData ) { // risco -> risco ( risco -> tema )
{ System.out.println( "\tmove risco -> risco ( risco -> tema )" );
System.out.println("\tmove medida -> risco");
HsRiscoData destRisco = ( HsRiscoData ) destinyObject; destinationComponent = destinationPath.getParentPath().getLastPathComponent();
destinationNode = ( DefaultMutableTreeNode )destinationComponent;
if ( parentObject instanceof HsRiscoMedidaData ) destinationObject = destinationNode.getUserObject();
{ HsRiscoTemaData destTema = ( HsRiscoTemaData ) destinationObject;
moveMedida( destinyNode, parentNode, parentObject, destRisco );
moveRisco( destinationNode, sourceNode, sourceObject, destTema );
} }
} }
else if( destinyObject instanceof HsRiscoMedidaData ) else if( destinationObject instanceof HsRiscoMedidaData )
{ { // something -> medida
destinyComponent = destinyPath.getParentPath().getLastPathComponent(); if ( sourceObject instanceof HsRiscoMedidaData )
destinyNode = ( DefaultMutableTreeNode ) destinyComponent; { // medida -> medida ( medida -> risco )
destinyObject = destinyNode.getUserObject(); System.out.println( "\tmove medida -> medida parent ( risco )" );
HsRiscoData destRisco = ( HsRiscoData ) destinyObject;
destinationComponent = destinationPath.getParentPath().getLastPathComponent();
if ( parentObject instanceof HsRiscoMedidaData ) destinationNode = ( DefaultMutableTreeNode ) destinationComponent;
{ destinationObject = destinationNode.getUserObject();
moveMedida( destinyNode, parentNode, parentObject, destRisco ); HsRiscoData destRisco = ( HsRiscoData ) destinationObject;
moveMedida( destinationNode, sourceNode, sourceObject, destRisco );
} }
} }
} }
@ -147,15 +140,15 @@ public class DnDRiscosListener implements DropTargetListener
{ {
} }
private void moveMedida( DefaultMutableTreeNode destinyNode, DefaultMutableTreeNode parentNode, Object parentObject, HsRiscoData destRisco ) private void moveMedida( DefaultMutableTreeNode destinationNode, DefaultMutableTreeNode sourceNode, Object sourceObject, HsRiscoData destRisco )
{ {
HsRiscoMedidaData parent = ( HsRiscoMedidaData ) parentObject; HsRiscoMedidaData source = ( HsRiscoMedidaData ) sourceObject;
parent.setToRisco_id( destRisco ); source.setToRisco_id( destRisco );
try try
{ {
parent.save(); source.save();
destinyNode.add( parentNode ); destinationNode.add( sourceNode );
tree.updateUI(); tree.updateUI();
} }
catch ( EvoDataException e ) catch ( EvoDataException e )
@ -164,14 +157,14 @@ public class DnDRiscosListener implements DropTargetListener
} }
} }
private void moveRisco( DefaultMutableTreeNode destinyNode, DefaultMutableTreeNode parentNode, Object parentObject, HsRiscoTemaData destTema ) private void moveRisco( DefaultMutableTreeNode destinationNode, DefaultMutableTreeNode sourceNode, Object soruceObject, HsRiscoTemaData destTema )
{ {
HsRiscoData parent = ( HsRiscoData ) parentObject; HsRiscoData source = ( HsRiscoData ) soruceObject;
parent.setToTema_id( destTema ); source.setToTema_id( destTema );
try try
{ {
parent.save(); source.save();
destinyNode.add( parentNode ); destinationNode.add( sourceNode );
tree.updateUI(); tree.updateUI();
} }
catch ( EvoDataException e ) catch ( EvoDataException e )

Loading…
Cancel
Save