Revision 8723 trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/graph/gui/RouteControlPanel.java

View differences:

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