Revision 26 org.gvsig.lrs/trunk/org.gvsig.lrs/org.gvsig.lrs.swing/org.gvsig.lrs.swing.impl/src/main/java/org/gvsig/lrs/swing/impl/JLrsGenerateDynamicSegmentationParamsController.java
JLrsGenerateDynamicSegmentationParamsController.java | ||
---|---|---|
14 | 14 |
import java.util.List; |
15 | 15 |
import java.util.Locale; |
16 | 16 |
|
17 |
import javax.swing.JButton; |
|
18 | 17 |
import javax.swing.JComponent; |
19 | 18 |
import javax.swing.JOptionPane; |
20 | 19 |
import javax.swing.ListCellRenderer; |
21 | 20 |
|
22 | 21 |
import org.apache.commons.io.FileUtils; |
23 | 22 |
import org.apache.commons.lang3.StringUtils; |
24 |
import org.apache.commons.lang3.mutable.MutableBoolean; |
|
25 | 23 |
import org.cresques.cts.IProjection; |
26 |
import org.gvsig.fmap.dal.DALLocator;
|
|
27 |
import org.gvsig.fmap.dal.DataManager;
|
|
28 |
import org.gvsig.fmap.dal.DataStoreParameters; |
|
24 |
import org.slf4j.Logger;
|
|
25 |
import org.slf4j.LoggerFactory;
|
|
26 |
|
|
29 | 27 |
import org.gvsig.fmap.dal.exception.DataException; |
30 | 28 |
import org.gvsig.fmap.dal.exception.ReadException; |
31 | 29 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
... | ... | |
34 | 32 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
35 | 33 |
import org.gvsig.fmap.dal.store.shp.SHPNewStoreParameters; |
36 | 34 |
import org.gvsig.fmap.geom.DataTypes; |
37 |
import org.gvsig.fmap.geom.Geometry; |
|
38 | 35 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
39 | 36 |
import org.gvsig.fmap.mapcontext.layers.operations.LayerCollection; |
40 | 37 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
... | ... | |
46 | 43 |
import org.gvsig.lrs.lib.api.exceptions.LrsNeededParameterException; |
47 | 44 |
import org.gvsig.lrs.swing.api.JLrsAlgorithmParams; |
48 | 45 |
import org.gvsig.tools.ToolsLocator; |
49 |
import org.gvsig.tools.exception.BaseException; |
|
50 | 46 |
import org.gvsig.tools.i18n.I18nManager; |
51 | 47 |
import org.gvsig.tools.swing.api.ActionListenerSupport; |
52 | 48 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
53 | 49 |
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager; |
54 |
import org.gvsig.tools.visitor.VisitCanceledException; |
|
55 |
import org.gvsig.tools.visitor.Visitor; |
|
56 |
import org.slf4j.Logger; |
|
57 |
import org.slf4j.LoggerFactory; |
|
58 | 50 |
|
59 | 51 |
public class JLrsGenerateDynamicSegmentationParamsController extends |
60 | 52 |
JLrsGenerateDynamicSegmentationParamsView implements JLrsAlgorithmParams { |
61 | 53 |
|
54 |
/** |
|
55 |
* |
|
56 |
*/ |
|
57 |
private static final long serialVersionUID = -5764089056918981236L; |
|
58 |
|
|
62 | 59 |
private static final Logger logger = LoggerFactory |
63 | 60 |
.getLogger(JLrsGenerateDynamicSegmentationParamsController.class); |
64 | 61 |
|
... | ... | |
230 | 227 |
cmbInputLayer.setModel(inputLayerModel); |
231 | 228 |
cmbTable.setModel(tableLayerModel); |
232 | 229 |
|
233 |
// listener del combo de capas para que actualice el resto de |
|
234 |
// componentes |
|
230 |
// listener del combo de capas para que actualice el resto de componentes |
|
235 | 231 |
cmbInputLayer.addItemListener(new ItemListener() { |
236 | 232 |
|
237 | 233 |
public void itemStateChanged(ItemEvent e) { |
... | ... | |
249 | 245 |
if (item instanceof FeatureStore) { |
250 | 246 |
FeatureStore featureStore = (FeatureStore) item; |
251 | 247 |
updateTable(featureStore); |
248 |
clearTableFields(); |
|
252 | 249 |
} |
253 | 250 |
} |
254 | 251 |
}); |
... | ... | |
352 | 349 |
logger.error("Error getting selected item from cmbInputLayer"); |
353 | 350 |
throw new LrsGettingParametersException("error_getting_selected_item_from_cmbInputLayer", null); |
354 | 351 |
} |
355 |
FLyrVect fLyrVect = (FLyrVect) this.cmbIdRouteField.getSelectedItem();
|
|
352 |
FLyrVect fLyrVect = (FLyrVect) this.cmbInputLayer.getSelectedItem();
|
|
356 | 353 |
IProjection projection= fLyrVect.getProjection(); |
357 | 354 |
if (!(fLyrVect.getFeatureStore() instanceof FeatureStore)){ |
358 | 355 |
logger.error("Error getting selected item from cmbInputLayer"); |
... | ... | |
406 | 403 |
params.setLandmarkField(landmarkField); |
407 | 404 |
|
408 | 405 |
//cmbFinalLandmarkField |
409 |
if (!(this.cmbFinalLandmarkField.getSelectedItem() instanceof FeatureAttributeDescriptor)){ |
|
406 |
if (this.cmbFinalLandmarkField.getSelectedItem()!=null && !(this.cmbFinalLandmarkField.getSelectedItem() instanceof FeatureAttributeDescriptor)){
|
|
410 | 407 |
logger.error("Error getting selected item from cmbFinalLandmarkField"); |
411 | 408 |
throw new LrsGettingParametersException("error_getting_selected_item_from_cmbFinalLandmarkField", null); |
412 | 409 |
} |
... | ... | |
479 | 476 |
if (inputLayerSelected != null) { |
480 | 477 |
this.updateLayerSource((FLyrVect) inputLayerSelected); |
481 | 478 |
} |
479 |
if (this.cmbIdRouteField.getItemCount() > 0) { |
|
480 |
this.cmbIdRouteField.setSelectedIndex(0); |
|
481 |
} |
|
482 | 482 |
this.cmbTable.setSelectedIndex(0); |
483 | 483 |
Object tableSelected = this.cmbTable.getSelectedItem(); |
484 | 484 |
if (tableSelected != null) { |
485 | 485 |
this.updateTable((FeatureStore) tableSelected); |
486 | 486 |
} |
487 |
this.cmbIdRouteField.setSelectedIndex(0); |
|
488 |
this.cmbTableIdRouteField.setSelectedIndex(0); |
|
489 |
this.cmbLandmarkField.setSelectedIndex(0); |
|
490 |
this.cmbFinalLandmarkField.setSelectedIndex(0); |
|
491 |
this.cmbValueField.setSelectedIndex(0); |
|
487 |
clearTableFields(); |
|
492 | 488 |
} |
493 | 489 |
|
490 |
/** |
|
491 |
* |
|
492 |
*/ |
|
493 |
private void clearTableFields() { |
|
494 |
logger.info(String.valueOf(this.cmbTableIdRouteField.getItemCount())); |
|
495 |
if (this.cmbTableIdRouteField.getItemCount() > 0) { |
|
496 |
this.cmbTableIdRouteField.setSelectedIndex(0); |
|
497 |
} |
|
498 |
logger.info(String.valueOf(this.cmbLandmarkField.getItemCount())); |
|
499 |
if (this.cmbLandmarkField.getItemCount() > 0) { |
|
500 |
this.cmbLandmarkField.setSelectedIndex(0); |
|
501 |
} |
|
502 |
logger.info(String.valueOf(this.cmbFinalLandmarkField.getItemCount())); |
|
503 |
this.cmbFinalLandmarkField.setSelectedIndex(-1); |
|
504 |
|
|
505 |
logger.info(String.valueOf(this.cmbValueField.getItemCount())); |
|
506 |
if (this.cmbValueField.getItemCount() > 0) { |
|
507 |
this.cmbValueField.setSelectedIndex(0); |
|
508 |
} |
|
509 |
this.cmbTableIdRouteField.repaint(); |
|
510 |
this.cmbLandmarkField.repaint(); |
|
511 |
this.cmbFinalLandmarkField.repaint(); |
|
512 |
this.cmbValueField.repaint(); |
|
513 |
|
|
514 |
} |
|
515 |
|
|
494 | 516 |
private void updateLayerSource(FLyrVect layer) { |
495 | 517 |
logger.info(new StringBuilder().append("Setting layer ") |
496 | 518 |
.append(layer.getName()).toString()); |
... | ... | |
547 | 569 |
this.cmbFinalLandmarkField.setModel(finalLandmarkComboBoxModel); |
548 | 570 |
this.cmbValueField.setModel(valueComboBoxModel); |
549 | 571 |
|
550 |
FeatureAttributeDescriptor[] attributeDescriptors = |
|
551 |
type.getAttributeDescriptors(); |
|
552 |
for (int i = 0; i < attributeDescriptors.length; i++) { |
|
572 |
// Renderer para los combos de attributeDescriptors |
|
573 |
ListCellRenderer featureAttributeDescriptorCellRenderer = |
|
574 |
new FLayersAttributeDescriptorCellRenderer(); |
|
575 |
// asignaci?n de renderers |
|
576 |
cmbTableIdRouteField |
|
577 |
.setRenderer(featureAttributeDescriptorCellRenderer); |
|
578 |
cmbLandmarkField.setRenderer(featureAttributeDescriptorCellRenderer); |
|
579 |
cmbFinalLandmarkField |
|
580 |
.setRenderer(featureAttributeDescriptorCellRenderer); |
|
581 |
cmbValueField.setRenderer(featureAttributeDescriptorCellRenderer); |
|
582 |
|
|
583 |
this.cmbFinalLandmarkField.insertItemAt(null,0); |
|
584 |
|
|
585 |
FeatureAttributeDescriptor[] attributeDescriptors = type.getAttributeDescriptors(); |
|
586 |
for (int i = 0; i<attributeDescriptors.length; i++) { |
|
553 | 587 |
FeatureAttributeDescriptor featureAttributeDescriptor = |
554 | 588 |
attributeDescriptors[i]; |
555 |
if (featureAttributeDescriptor.getDataType() |
|
556 |
.getType() != DataTypes.GEOMETRY) { |
|
557 |
logger.info(new StringBuilder().append("Adding field ") |
|
589 |
if (featureAttributeDescriptor.getDataType().getType() != DataTypes.GEOMETRY) { |
|
590 |
logger.info(new StringBuilder().append("0 - Adding field ") |
|
558 | 591 |
.append(featureAttributeDescriptor.getName()) |
559 | 592 |
.toString()); |
560 | 593 |
|
561 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbTableIdRouteField |
|
562 |
.addItem(featureAttributeDescriptor); |
|
563 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbValueField |
|
564 |
.addItem(featureAttributeDescriptor); |
|
594 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbTableIdRouteField.addItem(featureAttributeDescriptor); |
|
595 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbValueField.addItem(featureAttributeDescriptor); |
|
565 | 596 |
if (featureAttributeDescriptor.getDataType().isNumeric()) { |
566 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbLandmarkField |
|
567 |
.addItem(featureAttributeDescriptor); |
|
568 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbFinalLandmarkField |
|
569 |
.addItem(featureAttributeDescriptor); |
|
597 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbLandmarkField.addItem(featureAttributeDescriptor); |
|
598 |
JLrsGenerateDynamicSegmentationParamsController.this.cmbFinalLandmarkField.addItem(featureAttributeDescriptor); |
|
570 | 599 |
} |
600 |
logger.info(new StringBuilder().append("1 - Adding field ") |
|
601 |
.append(featureAttributeDescriptor.getName()) |
|
602 |
.toString()); |
|
571 | 603 |
} |
572 | 604 |
} |
573 |
this.cmbTableIdRouteField.invalidate(); |
|
574 |
this.cmbLandmarkField.invalidate(); |
|
575 |
this.cmbFinalLandmarkField.invalidate(); |
|
576 |
this.cmbValueField.invalidate(); |
|
577 |
|
|
578 | 605 |
} catch (DataException e1) { |
579 | 606 |
logger |
580 | 607 |
.warn(new StringBuilder() |
Also available in: Unified diff