Revision 8723 trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/graph/gui/RouteControlPanel.java
RouteControlPanel.java | ||
---|---|---|
43 | 43 |
* |
44 | 44 |
* $Id$ |
45 | 45 |
* $Log$ |
46 |
* Revision 1.22 2006-11-10 13:57:04 fjp |
|
46 |
* Revision 1.23 2006-11-14 09:23:30 fjp |
|
47 |
* cargar paradas desde cualquier tema de puntos |
|
48 |
* |
|
49 |
* Revision 1.22 2006/11/10 13:57:04 fjp |
|
47 | 50 |
* *** empty log message *** |
48 | 51 |
* |
49 | 52 |
* Revision 1.21 2006/11/09 21:08:32 azabala |
... | ... | |
158 | 161 |
import com.hardcode.gdbms.engine.values.Value; |
159 | 162 |
import com.hardcode.gdbms.engine.values.ValueFactory; |
160 | 163 |
import com.iver.andami.PluginServices; |
164 |
import com.iver.andami.messages.NotificationListener; |
|
165 |
import com.iver.andami.messages.NotificationManager; |
|
161 | 166 |
import com.iver.andami.ui.mdiManager.IWindow; |
162 | 167 |
import com.iver.andami.ui.mdiManager.SingletonWindow; |
163 | 168 |
import com.iver.andami.ui.mdiManager.WindowInfo; |
... | ... | |
184 | 189 |
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource; |
185 | 190 |
import com.iver.cit.gvsig.fmap.layers.SingleLayerIterator; |
186 | 191 |
import com.iver.cit.gvsig.fmap.rendering.FGraphic; |
192 |
import com.iver.cit.gvsig.graph.GraphException; |
|
187 | 193 |
import com.iver.cit.gvsig.graph.NetworkUtils; |
188 | 194 |
import com.iver.cit.gvsig.graph.core.GvFlag; |
189 | 195 |
import com.iver.cit.gvsig.graph.core.IFlagListener; |
... | ... | |
191 | 197 |
import com.iver.cit.gvsig.graph.solvers.FlagsMemoryDriver; |
192 | 198 |
import com.iver.cit.gvsig.graph.solvers.Route; |
193 | 199 |
import com.iver.cit.gvsig.graph.solvers.RouteMemoryDriver; |
200 |
import com.iver.cit.gvsig.graph.tools.FlagListener; |
|
194 | 201 |
import com.iver.cit.gvsig.project.documents.gui.FOpenDialog; |
195 | 202 |
import com.iver.cit.gvsig.project.documents.table.gui.Table.DataSourceDataModel; |
196 | 203 |
import com.iver.cit.gvsig.project.documents.view.gui.IView; |
... | ... | |
934 | 941 |
return; |
935 | 942 |
|
936 | 943 |
// TODO |
937 |
// Hay que refinar bastante, para que el usuario eliga
|
|
944 |
// Hay que refinar bastante, para que el usuario elija
|
|
938 | 945 |
// con que red y con qu? capa lineal quiere trabajar |
939 | 946 |
// tal y como est?, si hubiese varias se trabajaria |
940 | 947 |
// con la primera que devuelva el iterador |
... | ... | |
958 | 965 |
SelectableDataSource recordset = vectLyr.getRecordset(); |
959 | 966 |
int numShapes = reader.getShapeCount(); |
960 | 967 |
|
968 |
double realTol = mapCtrl.getViewPort() |
|
969 |
.toMapDistance(FlagListener.pixelTolerance); |
|
961 | 970 |
for (int i = 0; i < numShapes; i++) { |
962 | 971 |
Geometry geo = reader.getShape(i).toJTSGeometry(); |
963 | 972 |
if (!((geo instanceof Point) || (geo instanceof MultiPoint))) |
964 | 973 |
continue; |
974 |
|
|
975 |
|
|
965 | 976 |
|
966 |
/* |
|
967 |
* TODO Aqui deberiamos comprobar si el registro tiene |
|
968 |
* alguno de los campos de un Flag. A saber: ->cost |
|
969 |
* ->description |
|
970 |
*/ |
|
971 | 977 |
Coordinate[] coords = geo.getCoordinates(); |
972 | 978 |
for (int j = 0; j < coords.length; j++) { |
973 |
flag = new GvFlag(coords[j].x, coords[j].y); |
|
979 |
// flag = new GvFlag(coords[j].x, coords[j].y);
|
|
974 | 980 |
|
975 |
NumericValue idflag = (NumericValue) recordset.getFieldValue(i, GvFlag.ID_FLAG_INDEX); |
|
976 |
flag.setIdFlag(idflag.intValue()); |
|
977 |
NumericValue idarc = (NumericValue) recordset.getFieldValue(i, GvFlag.ID_ARC_INDEX); |
|
978 |
flag.setIdArc(idarc.intValue()); |
|
979 |
NumericValue pct = (NumericValue) recordset.getFieldValue(i, GvFlag.PCT_INDEX); |
|
980 |
flag.setPct(pct.doubleValue()); |
|
981 |
NumericValue cost = (NumericValue) recordset.getFieldValue(i, GvFlag.COST_INDEX); |
|
982 |
flag.setCost(cost.doubleValue()); |
|
983 |
NumericValue direc = (NumericValue) recordset.getFieldValue(i, GvFlag.DIREC_INDEX); |
|
984 |
flag.setDirec(direc.intValue()); |
|
985 |
StringValue desc = (StringValue) recordset.getFieldValue(i, GvFlag.DESCRIPTION_INDEX); |
|
986 |
flag.setDescription(desc.toString()); |
|
981 |
// NumericValue idflag = (NumericValue) recordset.getFieldValue(i, GvFlag.ID_FLAG_INDEX);
|
|
982 |
// flag.setIdFlag(idflag.intValue());
|
|
983 |
// NumericValue idarc = (NumericValue) recordset.getFieldValue(i, GvFlag.ID_ARC_INDEX);
|
|
984 |
// flag.setIdArc(idarc.intValue());
|
|
985 |
// NumericValue pct = (NumericValue) recordset.getFieldValue(i, GvFlag.PCT_INDEX);
|
|
986 |
// flag.setPct(pct.doubleValue());
|
|
987 |
// NumericValue cost = (NumericValue) recordset.getFieldValue(i, GvFlag.COST_INDEX);
|
|
988 |
// flag.setCost(cost.doubleValue());
|
|
989 |
// NumericValue direc = (NumericValue) recordset.getFieldValue(i, GvFlag.DIREC_INDEX);
|
|
990 |
// flag.setDirec(direc.intValue());
|
|
991 |
// StringValue desc = (StringValue) recordset.getFieldValue(i, GvFlag.DESCRIPTION_INDEX);
|
|
992 |
// flag.setDescription(desc.toString());
|
|
987 | 993 |
|
988 |
net.addFlag(flag); |
|
994 |
try { |
|
995 |
flag = net.addFlag(coords[j].x, coords[j].y, realTol); |
|
996 |
|
|
989 | 997 |
// TODO: Create use a IFlagListener to do this |
990 | 998 |
// inside flagsChanged. The best solution is |
991 | 999 |
// to put all the code in RouteControlPanel |
992 |
NetworkUtils.addGraphicFlag(mapControl, flag); |
|
1000 |
NetworkUtils.addGraphicFlag(mapControl, flag); |
|
1001 |
} catch (GraphException e) { |
|
1002 |
e.printStackTrace(); |
|
1003 |
NotificationManager.addError("No se puedo situar el registro " + i + |
|
1004 |
"Por favor, compruebe que est? encima de la red.", e); |
|
1005 |
} |
|
993 | 1006 |
|
994 | 1007 |
} |
995 | 1008 |
mapControl.drawGraphics(); |
... | ... | |
1000 | 1013 |
return; |
1001 | 1014 |
} catch (DriverIOException e2) { |
1002 | 1015 |
return; |
1003 |
} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) { |
|
1004 |
// TODO Auto-generated catch block |
|
1005 |
e.printStackTrace(); |
|
1006 | 1016 |
} |
1007 | 1017 |
} |
1008 | 1018 |
} |
Also available in: Unified diff