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

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
Tiago Simão 16 years ago
parent 5cfd8277f1
commit 7724d45348

@ -88,7 +88,7 @@ public class GerirMedidasRelatorioPanel extends JPanel
buttonAdicionar.setEnabled( false );
buttonRemover.setEnabled( false );
tree.setRootVisible( false );
tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
tree.getSelectionModel().setSelectionMode( TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION );
tree.setCellRenderer( new DefaultTreeCellRenderer()
{
@ -337,26 +337,47 @@ public class GerirMedidasRelatorioPanel extends JPanel
private void rem()
{
for( TreePath path : tree.getSelectionPaths() )
{
if( !rem(path) )
{
break;
}
}
refresh();
setEnabled();
}
private String shortenString( String string )
{
return string == null ? null : (string.length() <= 40 ? string : (string.substring(0,40) + "..."));
}
private boolean rem(TreePath path)
{
boolean outcome = false;
try
{
TreePath path = tree.getSelectionPath();
if( path != null )
{
Object selection = path.getLastPathComponent();
if( selection instanceof MedidaRelatorioNode )
{
if( confirm("Tem a certeza que deseja remover o requisito?") )
HsRelatorioPostoMedida rel = selection == null ? null : (HsRelatorioPostoMedida) ((MedidaRelatorioNode) selection).getUserObject();
if( confirm("Tem a certeza que deseja remover o requisito '" + shortenString( rel.getToHsRelatorioMedida().toString() ) + "'?") )
{
HsRelatorioPostoMedida rel = selection == null ? null : (HsRelatorioPostoMedida) ((MedidaRelatorioNode) selection).getUserObject();
rel.getToHsRelatorioMedida().setDeletedDate( new Date() );
rel.delete();
outcome = true;
}
}
else if( selection instanceof RiscoRelatorioNode )
{
if( confirm("Tem a certeza que deseja remover o risco?") )
HsRelatorioPostoRisco rel = (HsRelatorioPostoRisco) ((RiscoRelatorioNode)selection).getUserObject();
if( confirm("Tem a certeza que deseja remover o risco '" + shortenString( rel.getToHsRelatorioRisco().toString() ) + "'?") )
{
HsRelatorioPostoRisco rel = (HsRelatorioPostoRisco) ((RiscoRelatorioNode)selection).getUserObject();
for( HsRelatorioMedida medida : rel.getToHsRelatorioRisco().getHsRelatorioMedidaArray() )
{
while( true )
@ -375,16 +396,16 @@ public class GerirMedidasRelatorioPanel extends JPanel
medida.setDeletedDate( new Date() );
}
rel.getToHsRelatorioRisco().setDeletedDate( new Date() );
outcome = true;
}
}
}
refresh();
setEnabled();
}
catch( Exception e )
{
LeafDialog.error( e );
}
return outcome;
}
private void setEnabled()

@ -11,6 +11,8 @@ import java.beans.PropertyChangeListener;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import leaf.data.Pair;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioArea;
import siprp.database.cayenne.objects.HsRelatorioPosto;

@ -0,0 +1,16 @@
package leaf.ui;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
public class LeafTreeModel extends DefaultTreeModel
{
public LeafTreeModel(TreeNode root)
{
super(root);
}
private static final long serialVersionUID = 1L;
}

@ -1,9 +1,16 @@
package siprp.database.cayenne.objects;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.DateFormat;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.apache.cayenne.CayenneDataObject;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.PersistenceState;
import siprp.database.cayenne.providers.MainDAO;
@ -107,4 +114,87 @@ public class BaseObject extends CayenneDataObject implements Comparable<BaseObje
return result;
}
private <OBJ_CLASS extends BaseObject> List<OBJ_CLASS>getNtoN( String relation, String toGet )
{
List<OBJ_CLASS> result = new LinkedList<OBJ_CLASS>();
for( BaseObject o : (List<? extends BaseObject>) super.readProperty(relation) )
{
OBJ_CLASS toGetObj = (OBJ_CLASS) o.readProperty( toGet );
if( null == toGetObj.readProperty( "deleted_date" ) )
{
result.add(toGetObj);
}
}
return result;
}
@Override
public Object readProperty(String propertyName) {
return (propertyName != null && propertyName.endsWith("Array") ) ? getReferringObjects(propertyName) : super.readProperty(propertyName);
}
private <OBJ_CLASS extends BaseObject > boolean isRelational( OBJ_CLASS object )
{
boolean result = false;
ObjectId id = object.getObjectId();
if( id != null && !id.isTemporary() )
{
Map<String,Object> ids = id.getIdSnapshot();
if( ids != null && ids.size() == 2 )
{
result = true;
}
}
return result;
}
private <OBJ_CLASS extends BaseObject > boolean isRelDeleted( OBJ_CLASS object )
{
boolean result = false;
if( object != null )
{
for( Method method : object.getClass().getMethods() )
{
if( method.getName().startsWith("getTo") )
{
try
{
Object returned = method.invoke(object);
if( returned != null && (returned instanceof BaseObject ) )
{
result |= null != ((BaseObject)returned).readProperty("deletedDate");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
return result;
}
@SuppressWarnings("unchecked")
private <OBJ_CLASS extends BaseObject> List<OBJ_CLASS> getReferringObjects( String arrayProperty )
{
List<OBJ_CLASS> result = new LinkedList<OBJ_CLASS>();
Boolean isRel = null;
for( OBJ_CLASS o : (List<OBJ_CLASS>) super.readProperty(arrayProperty) )
{
if( isRel == null )
{
isRel = isRelational( o );
}
if( null == o.readProperty( "deletedDate" ) )
{
if( !isRel || !isRelDeleted( o ) )
{
result.add(o);
}
}
}
return result;
}
}

@ -11,4 +11,5 @@ public class HsRelatorioPostoRisco extends _HsRelatorioPostoRisco {
{
return getToHsRelatorioRisco().getDescription();
}
}

Loading…
Cancel
Save