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
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