97 |
97 |
import javax.swing.ImageIcon;
|
98 |
98 |
import javax.swing.JComponent;
|
99 |
99 |
import org.apache.commons.lang3.tuple.Pair;
|
|
100 |
import org.gvsig.app.project.documents.table.TableDocument;
|
100 |
101 |
import org.gvsig.fmap.dal.feature.FeatureStore;
|
101 |
102 |
import org.gvsig.fmap.mapcontext.layers.vectorial.VectorLayer;
|
102 |
103 |
import org.gvsig.temporarystorage.TemporaryStorageGroup;
|
... | ... | |
124 |
125 |
protected JPanel jPanelParameters;
|
125 |
126 |
protected ArrayList m_ParameterContainer = new ArrayList();
|
126 |
127 |
protected ArrayList m_ComboBox = new ArrayList();
|
127 |
|
protected ArrayList m_FilterComboBox = new ArrayList();
|
128 |
128 |
protected GeoAlgorithm m_Algorithm;
|
129 |
129 |
protected ArrayList m_OutputParameterContainer = new ArrayList();
|
130 |
130 |
protected HashMap m_HelpElements;
|
... | ... | |
167 |
167 |
protected void initGUI() {
|
168 |
168 |
|
169 |
169 |
m_ComboBox = new ArrayList();
|
170 |
|
m_FilterComboBox = new ArrayList();
|
171 |
170 |
|
172 |
171 |
{
|
173 |
172 |
jScrollPanelParameters = new JScrollPane();
|
... | ... | |
417 |
416 |
int i, j;
|
418 |
417 |
String sParameterName;
|
419 |
418 |
final ArrayList childComboBoxIndex = new ArrayList();
|
|
419 |
|
420 |
420 |
Parameter parameter;
|
421 |
421 |
Parameter subParameter;
|
422 |
422 |
final ParametersSet parameters = m_Algorithm.getParameters();
|
... | ... | |
427 |
427 |
|
428 |
428 |
|
429 |
429 |
for (i = 0; i < m_Algorithm.getNumberOfParameters(); i++) {
|
430 |
|
int tableFiltersApplied = 0;
|
|
430 |
//int tableFiltersApplied = 0;
|
431 |
431 |
parameter = parameters.getParameter(i);
|
432 |
432 |
if (parameter instanceof ParameterVectorLayer) {
|
433 |
433 |
try {
|
... | ... | |
435 |
435 |
//check for table fields that depend on this vector layer
|
436 |
436 |
sParameterName = parameter.getParameterName();
|
437 |
437 |
childComboBoxIndex.clear();
|
|
438 |
|
438 |
439 |
for (j = 0; j < m_Algorithm.getNumberOfParameters(); j++) {
|
439 |
440 |
subParameter = parameters.getParameter(j);
|
440 |
441 |
if (subParameter instanceof ParameterTableField) {
|
... | ... | |
456 |
457 |
} else if (subParameter instanceof ParameterTableFilter) {
|
457 |
458 |
if (((AdditionalInfoTableFilter) subParameter.getParameterAdditionalInfo()).getParentParameterName().equals(
|
458 |
459 |
sParameterName)) {
|
459 |
|
addTableFilter(pane, (ParameterVectorLayer) parameter, (ParameterTableFilter) subParameter, shapeTypes);
|
460 |
|
tableFiltersApplied++;
|
|
460 |
addTableFilter(pane, (ParameterVectorLayer) parameter, (ParameterTableFilter) subParameter, shapeTypes, childComboBoxIndex);
|
|
461 |
//tableFiltersApplied++;
|
461 |
462 |
}
|
462 |
463 |
}
|
463 |
464 |
}
|
... | ... | |
473 |
474 |
|
474 |
475 |
if (((AdditionalInfoVectorLayer) parameter.getParameterAdditionalInfo()).getIsMandatory()) {
|
475 |
476 |
bAddNotSetField = false;
|
476 |
|
addTitleLabel(pane, parameter.getParameterDescription(), m_iCurrentRow - childComboBoxIndex.size()- tableFiltersApplied, false);
|
|
477 |
addTitleLabel(pane, parameter.getParameterDescription(), m_iCurrentRow - childComboBoxIndex.size(), false); //- tableFiltersApplied
|
477 |
478 |
}
|
478 |
479 |
else {
|
479 |
480 |
bAddNotSetField = true;
|
... | ... | |
484 |
485 |
if (bAddNotSetField) {
|
485 |
486 |
comboBox.setSelectedIndex(0);
|
486 |
487 |
}
|
487 |
|
pane.add(comboBox, getStringTableCoords(2, m_iCurrentRow - childComboBoxIndex.size() - tableFiltersApplied));
|
|
488 |
pane.add(comboBox, getStringTableCoords(2, m_iCurrentRow - childComboBoxIndex.size())); // -tableFilerApplied
|
488 |
489 |
m_iCurrentRow++;
|
489 |
490 |
m_ParameterContainer.add(new ParameterContainer(parameter, comboBox));
|
490 |
491 |
}
|
... | ... | |
529 |
530 |
parameter = parameters.getParameter(i);
|
530 |
531 |
if (parameter instanceof ParameterTable) {
|
531 |
532 |
//check for table fields that depend on this table
|
|
533 |
//int[] tableTypes = ((AdditionalInfoTable) parameter.getParameterAdditionalInfo()); //.getShapeTypes();
|
|
534 |
|
532 |
535 |
sParameterName = parameter.getParameterName();
|
533 |
536 |
childComboBoxIndex.clear();
|
534 |
537 |
for (j = 0; j < m_Algorithm.getNumberOfParameters(); j++) {
|
... | ... | |
549 |
552 |
catch (final NullParameterAdditionalInfoException e) {
|
550 |
553 |
Sextante.addErrorToLog(e);
|
551 |
554 |
}
|
552 |
|
}
|
|
555 |
} else if (subParameter instanceof ParameterTableFilter) {
|
|
556 |
try {
|
|
557 |
if (((AdditionalInfoTableFilter) subParameter.getParameterAdditionalInfo()).getParentParameterName().equals(
|
|
558 |
sParameterName)) {
|
|
559 |
Object shapeTypes = null;
|
|
560 |
addTableFilter(pane, (ParameterTable) parameter, (ParameterTableFilter) subParameter, childComboBoxIndex);
|
|
561 |
//tableFiltersApplied++;
|
|
562 |
}
|
|
563 |
} catch (NullParameterAdditionalInfoException ex) {
|
|
564 |
Sextante.addErrorToLog(ex);
|
|
565 |
}
|
|
566 |
}
|
553 |
567 |
}
|
554 |
568 |
// add table
|
555 |
569 |
try {
|
... | ... | |
758 |
772 |
}
|
759 |
773 |
|
760 |
774 |
}
|
|
775 |
protected void addTableFilter(final JPanel pane,
|
|
776 |
final ParameterTable parameter,
|
|
777 |
final ParameterTableFilter subParameter,
|
|
778 |
ArrayList childComboBoxIndex) {
|
761 |
779 |
|
|
780 |
try {
|
|
781 |
final AdditionalInfoTable additionalInfo = (AdditionalInfoTable) parameter.getParameterAdditionalInfo();
|
|
782 |
m_iCurrentRow++;
|
|
783 |
addTitleLabel(pane, " " + subParameter.getParameterDescription(), m_iCurrentRow, false);
|
|
784 |
} catch (final NullParameterAdditionalInfoException e) {
|
|
785 |
Sextante.addErrorToLog(e);
|
|
786 |
}
|
|
787 |
TableFilterPanel tableFilterPanel;
|
|
788 |
// IVectorLayer ivlayer = parameter.getParameterValueAsVectorLayer();
|
|
789 |
List<ITable> layers = getTables();
|
|
790 |
if (layers.size() > 0) {
|
|
791 |
ITable ivlayer = layers.get(0);
|
|
792 |
TableDocument layer = (TableDocument) ivlayer.getBaseDataObject();
|
|
793 |
FeatureStore store = layer.getFeatureStore();
|
|
794 |
tableFilterPanel = new TableFilterPanel(store);
|
|
795 |
} else {
|
|
796 |
tableFilterPanel = new TableFilterPanel();
|
|
797 |
}
|
|
798 |
childComboBoxIndex.add(new Integer(m_ComboBox.size()));
|
|
799 |
pane.add(tableFilterPanel, getStringTableCoords(2, m_iCurrentRow));
|
|
800 |
m_ComboBox.add(tableFilterPanel);
|
|
801 |
m_ParameterContainer.add(new ParameterContainer(subParameter, tableFilterPanel));
|
|
802 |
|
|
803 |
}
|
|
804 |
|
762 |
805 |
protected void addTableFilter(final JPanel pane,
|
763 |
806 |
final ParameterVectorLayer parameter,
|
764 |
807 |
final ParameterTableFilter subParameter,
|
765 |
|
int[] shapeTypes) {
|
|
808 |
int[] shapeTypes,
|
|
809 |
ArrayList childComboBoxIndex) {
|
766 |
810 |
|
767 |
811 |
try {
|
768 |
812 |
final AdditionalInfoVectorLayer additionalInfo = (AdditionalInfoVectorLayer) parameter.getParameterAdditionalInfo();
|
... | ... | |
782 |
826 |
} else {
|
783 |
827 |
tableFilterPanel = new TableFilterPanel();
|
784 |
828 |
}
|
785 |
|
|
|
829 |
childComboBoxIndex.add(new Integer(m_ComboBox.size()));
|
786 |
830 |
pane.add(tableFilterPanel, getStringTableCoords(2, m_iCurrentRow));
|
787 |
|
m_FilterComboBox.add(tableFilterPanel);
|
|
831 |
m_ComboBox.add(tableFilterPanel);
|
788 |
832 |
m_ParameterContainer.add(new ParameterContainer(subParameter, tableFilterPanel));
|
789 |
833 |
|
790 |
|
|
791 |
834 |
}
|
792 |
835 |
|
793 |
836 |
protected void addPoint(final JPanel pane,
|
... | ... | |
1269 |
1312 |
final ObjectAndDescription ob = (ObjectAndDescription) cb.getSelectedItem();
|
1270 |
1313 |
final IVectorLayer layer = (IVectorLayer) ob.getObject();
|
1271 |
1314 |
if (layer != null) {
|
1272 |
|
FieldDescriptionComboBox[] sNames = getVectorLayerFieldRendererComboBox(layer);
|
1273 |
|
if (sNames != null) {
|
1274 |
|
defaultModel = new DefaultComboBoxModel(sNames);
|
1275 |
|
JComboBox cmb = (JComboBox) m_ComboBox.get(iIndex);
|
1276 |
|
cmb.setModel(defaultModel);
|
|
1315 |
Object item = m_ComboBox.get(iIndex);
|
|
1316 |
if (item instanceof JComboBox) {
|
|
1317 |
FieldDescriptionComboBox[] sNames = getVectorLayerFieldRendererComboBox(layer);
|
|
1318 |
if (sNames != null) {
|
|
1319 |
defaultModel = new DefaultComboBoxModel(sNames);
|
|
1320 |
JComboBox cmb = (JComboBox) item;
|
|
1321 |
cmb.setModel(defaultModel);
|
|
1322 |
}
|
1277 |
1323 |
}
|
1278 |
|
TableFilterPanel pane = (TableFilterPanel) m_FilterComboBox.get(iIndex);
|
1279 |
|
VectorLayer ivector = (VectorLayer) layer.getBaseDataObject();
|
1280 |
|
pane.setStore(ivector.getFeatureStore());
|
|
1324 |
if (item instanceof TableFilterPanel) {
|
|
1325 |
TableFilterPanel pane = (TableFilterPanel) item;
|
|
1326 |
VectorLayer ivector = (VectorLayer) layer.getBaseDataObject();
|
|
1327 |
pane.setStore(ivector.getFeatureStore());
|
|
1328 |
}
|
1281 |
1329 |
}
|
1282 |
1330 |
}
|
1283 |
1331 |
}
|
... | ... | |
1319 |
1367 |
final ObjectAndDescription ob = (ObjectAndDescription) cb.getSelectedItem();
|
1320 |
1368 |
final IVectorLayer layer = (IVectorLayer) ob.getObject();
|
1321 |
1369 |
if (layer != null) {
|
1322 |
|
FieldDescriptionComboBox[] sNames = getVectorLayerFieldRendererComboBox(layer);
|
1323 |
|
if (sNames != null) {
|
1324 |
|
defaultModel = new DefaultComboBoxModel(sNames);
|
1325 |
|
//FieldComboBoxRenderer renderer = new FieldComboBoxRenderer();
|
1326 |
|
JComboBox cmb = (JComboBox) m_ComboBox.get(iIndex);
|
1327 |
|
//cmb.setRenderer(renderer);
|
1328 |
|
cmb.setModel(defaultModel);
|
|
1370 |
Object item = m_ComboBox.get(iIndex);
|
|
1371 |
if (item instanceof JComboBox) {
|
|
1372 |
FieldDescriptionComboBox[] sNames = getVectorLayerFieldRendererComboBox(layer);
|
|
1373 |
if (sNames != null) {
|
|
1374 |
defaultModel = new DefaultComboBoxModel(sNames);
|
|
1375 |
JComboBox cmb = (JComboBox) item;
|
|
1376 |
cmb.setModel(defaultModel);
|
|
1377 |
}
|
1329 |
1378 |
}
|
1330 |
|
TableFilterPanel pane = (TableFilterPanel) m_FilterComboBox.get(iIndex);
|
1331 |
|
VectorLayer ivector = (VectorLayer) layer.getBaseDataObject();
|
1332 |
|
pane.setStore(ivector.getFeatureStore());
|
|
1379 |
if (item instanceof TableFilterPanel) {
|
|
1380 |
TableFilterPanel pane = (TableFilterPanel) item;
|
|
1381 |
VectorLayer ivector = (VectorLayer) layer.getBaseDataObject();
|
|
1382 |
pane.setStore(ivector.getFeatureStore());
|
|
1383 |
}
|
1333 |
1384 |
}
|
1334 |
1385 |
}
|
1335 |
1386 |
}
|
... | ... | |
1339 |
1390 |
|
1340 |
1391 |
}
|
1341 |
1392 |
|
|
1393 |
/**
|
|
1394 |
* @param shapeTypes
|
|
1395 |
* @return
|
|
1396 |
*/
|
|
1397 |
private List<ITable> getTables() {
|
|
1398 |
List<ITable> tables = new ArrayList<ITable>();
|
|
1399 |
ITable[] allTables = SextanteGUI.getInputFactory().getTables();
|
|
1400 |
for (int k = 0; k < allTables.length; k++) {
|
|
1401 |
tables.add(allTables[k]);
|
|
1402 |
};
|
1342 |
1403 |
|
|
1404 |
return tables;
|
|
1405 |
}
|
|
1406 |
|
1343 |
1407 |
/**
|
1344 |
1408 |
* @param shapeTypes
|
1345 |
1409 |
* @return
|
... | ... | |
1388 |
1452 |
iIndex = (childsArray[i]).intValue();
|
1389 |
1453 |
final ObjectAndDescription ob = (ObjectAndDescription) comboBox.getSelectedItem();
|
1390 |
1454 |
final ITable table = (ITable) ob.getObject();
|
1391 |
|
if (table != null) {
|
1392 |
|
sNames = getTableFieldNames(table);
|
1393 |
|
if (sNames != null) {
|
1394 |
|
defaultModel = new DefaultComboBoxModel(sNames);
|
1395 |
|
((JComboBox) m_ComboBox.get(iIndex)).setModel(defaultModel);
|
1396 |
|
}
|
1397 |
|
}
|
1398 |
|
}
|
|
1455 |
if (table != null) {
|
|
1456 |
Object item = m_ComboBox.get(iIndex);
|
|
1457 |
if (item instanceof JComboBox) {
|
|
1458 |
sNames = getTableFieldNames(table);
|
|
1459 |
if (sNames != null) {
|
|
1460 |
defaultModel = new DefaultComboBoxModel(sNames);
|
|
1461 |
((JComboBox) item).setModel(defaultModel);
|
|
1462 |
}
|
|
1463 |
}
|
|
1464 |
if (item instanceof TableFilterPanel) {
|
|
1465 |
TableFilterPanel pane = (TableFilterPanel) item;
|
|
1466 |
TableDocument ivector = (TableDocument) table.getBaseDataObject();
|
|
1467 |
pane.setStore(ivector.getFeatureStore());
|
|
1468 |
|
|
1469 |
}
|
|
1470 |
}
|
|
1471 |
}
|
1399 |
1472 |
}
|
1400 |
1473 |
});
|
1401 |
1474 |
|