Revision 2067 org.gvsig.topology/trunk/org.gvsig.topology/org.gvsig.topology.swing/org.gvsig.topology.swing.impl/src/main/java/org/gvsig/topology/swing/impl/DefaultJTopologyReport.java

View differences:

DefaultJTopologyReport.java
11 11
import java.util.HashSet;
12 12
import java.util.List;
13 13
import java.util.Set;
14
import java.util.logging.Level;
14 15
import javax.swing.DefaultComboBoxModel;
15 16
import javax.swing.DefaultListSelectionModel;
16 17
import javax.swing.ImageIcon;
......
30 31
import org.apache.commons.io.FilenameUtils;
31 32
import org.apache.commons.lang3.StringUtils;
32 33
import org.gvsig.expressionevaluator.ExpressionBuilder;
33
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
34
import org.gvsig.expressionevaluator.ExpressionUtils;
34 35
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
35 36
import org.gvsig.expressionevaluator.GeometryExpressionUtils;
37
import org.gvsig.featureform.swing.CreateJFeatureFormException;
38
import org.gvsig.fmap.dal.DataStore;
39
import org.gvsig.fmap.dal.exception.DataException;
36 40
import org.gvsig.fmap.dal.feature.FeatureSelection;
41
import org.gvsig.fmap.dal.feature.FeatureStore;
37 42
import org.gvsig.fmap.geom.Geometry;
38 43
import org.gvsig.fmap.geom.primitive.Envelope;
39 44
import org.gvsig.tools.ToolsLocator;
......
43 48
import org.gvsig.tools.i18n.I18nManager;
44 49
import org.gvsig.tools.observer.Observable;
45 50
import org.gvsig.tools.observer.Observer;
51
import org.gvsig.tools.service.ServiceException;
46 52
import org.gvsig.tools.swing.api.ListElement;
47 53
import org.gvsig.tools.swing.api.ToolsSwingLocator;
48 54
import org.gvsig.tools.swing.api.ToolsSwingManager;
49 55
import org.gvsig.tools.swing.api.task.TaskStatusController;
56
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
50 57
import org.gvsig.tools.swing.icontheme.IconTheme;
51 58
import org.gvsig.tools.task.TaskStatus;
52 59
import org.gvsig.topology.lib.api.TopologyLocator;
......
64 71
import org.slf4j.Logger;
65 72
import org.slf4j.LoggerFactory;
66 73

  
74
import org.gvsig.featureform.swing.JFeaturesForm;
75
import org.gvsig.fmap.dal.feature.Feature;
76
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
77
import org.gvsig.fmap.dal.feature.FeatureQuery;
78
import org.gvsig.fmap.dal.feature.FeatureReference;
79
import org.gvsig.fmap.dal.feature.FeatureType;
80
import org.gvsig.fmap.dal.swing.DALSwingLocator;
81
import org.gvsig.fmap.dal.swing.DataSwingManager;
82

  
67 83
/**
68 84
 *
69 85
 * @author jjdelcerro
......
261 277
                });
262 278
            }
263 279
        });
280
        
281
        this.btnShowFormGsOC2020.addActionListener(new ActionListener() {
282
            @Override
283
            public void actionPerformed(ActionEvent e) {
284
                showErrorForm();
285
            }
286
        });       
287
        
264 288
        this.taskStatusController = ToolsSwingLocator.getTaskStatusSwingManager().createTaskStatusController(
265 289
                null,
266 290
                this.lblTaskStatusTitle,
......
764 788
    private void restoreCurrentSelection() {
765 789
        this.tblErrors.setSelectionModel(this.selection);
766 790
    }
791
    
792
    
793
    private void showErrorForm() {
794
        int n = this.tblErrors.getSelectedRow();
795
        if (n < 0) {
796
            return;
797
        }
798
        TopologyReportLine line = this.linesModel.getLine(n);
799
        DataStore store = line.getDataSet1().getStore();
800
        JFeaturesForm form;
801
        try {
802
            FeatureStore fStore = (FeatureStore) store;
803
            FeatureType fType = fStore.getDefaultFeatureType();
804
            ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
805
            FeatureAttributeDescriptor[] pk = fType.getPrimaryKey();
806
            
807
            if (pk==null) {
808
                //FIXME : Presentar mensaje al usuario. Como poner ventanas en JAVA
809
                //FIXME : Permitir tratar tablas en las reglas.
810
                return;
811
            }
812
                //FIXME : Falta gestionar cuando la clave primarias es de varios campos
813
                
814
            Feature feature = line.getFeature1().getFeature();
815
            String filter = builder.eq(
816
                    builder.variable(pk[0].getName()),
817
                    builder.constant(feature.get(pk[0].getName()))
818
            ).toString();
819
            
820
            form = this.createform(fStore);
821
            FeatureQuery query = fStore.createFeatureQuery(filter, null, true);
822
            form.setQuery(query);
823
            form.showForm(WindowManager.MODE.WINDOW);
824
        } catch (Exception ex) {
825
            LOGGER.warn("Can't create form", ex);
826
        } 
827
    }
828

  
829
    private JFeaturesForm createform(FeatureStore featureStore) throws CreateJFeatureFormException, ServiceException, DataException {
830
        final DataSwingManager swingManager = DALSwingLocator.getSwingManager();
831
        final JFeaturesForm form = swingManager.createJFeaturesForm(featureStore);
832
        form.getFormset().setAllowDelete(true);
833
        form.getFormset().setAllowNew(true);
834
        form.setPreferredSize(new Dimension(400, 300));
835
        return form;
836
    }
837
    
767 838
}

Also available in: Unified diff