svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extEditing / src / org / gvsig / editing / StartEditing.java @ 39138
History | View | Annotate | Download (6.46 KB)
1 | 29616 | jpiera | package org.gvsig.editing; |
---|---|---|---|
2 | 3698 | caballero | |
3 | 6856 | fjp | import java.awt.Component; |
4 | |||
5 | import javax.swing.JOptionPane; |
||
6 | |||
7 | 38381 | jldominguez | import org.slf4j.Logger; |
8 | import org.slf4j.LoggerFactory; |
||
9 | |||
10 | 29616 | jpiera | import org.gvsig.andami.PluginServices; |
11 | 38381 | jldominguez | import org.gvsig.andami.messages.Messages; |
12 | 29616 | jpiera | import org.gvsig.andami.messages.NotificationManager; |
13 | import org.gvsig.andami.plugins.Extension; |
||
14 | 38381 | jldominguez | import org.gvsig.app.ApplicationLocator; |
15 | 31496 | jjdelcerro | import org.gvsig.app.project.documents.view.ViewDocument; |
16 | import org.gvsig.app.project.documents.view.gui.DefaultViewPanel; |
||
17 | 29616 | jpiera | import org.gvsig.editing.gui.cad.CADTool; |
18 | import org.gvsig.editing.gui.tokenmarker.ConsoleToken; |
||
19 | 38885 | jldominguez | import org.gvsig.fmap.dal.exception.DataException; |
20 | 24500 | jmvivo | import org.gvsig.fmap.dal.exception.ReadException; |
21 | 21666 | vcaballero | import org.gvsig.fmap.mapcontext.layers.FLayer; |
22 | import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
||
23 | import org.gvsig.fmap.mapcontrol.MapControl; |
||
24 | 29616 | jpiera | import org.gvsig.utils.console.jedit.KeywordMap; |
25 | import org.gvsig.utils.console.jedit.Token; |
||
26 | 21666 | vcaballero | |
27 | 3698 | caballero | |
28 | /**
|
||
29 | * DOCUMENT ME!
|
||
30 | 4892 | caballero | *
|
31 | 3698 | caballero | * @author Vicente Caballero Navarro
|
32 | */
|
||
33 | 5005 | jorpiell | public class StartEditing extends Extension { |
34 | 38381 | jldominguez | |
35 | private static Logger logger = LoggerFactory.getLogger(StartEditing.class); |
||
36 | 6312 | caballero | |
37 | 6604 | caballero | // private class MyAction extends AbstractAction
|
38 | // {
|
||
39 | //
|
||
40 | // public void actionPerformed(ActionEvent e) {
|
||
41 | // System.err.println("F3");
|
||
42 | // }
|
||
43 | //
|
||
44 | // }
|
||
45 | 5845 | fjp | |
46 | 9371 | jmvivo | //View vista;
|
47 | 4727 | fjp | /**
|
48 | 29616 | jpiera | * @see org.gvsig.andami.plugins.IExtension#initialize()
|
49 | 4727 | fjp | */
|
50 | 5005 | jorpiell | public void initialize() { |
51 | 4727 | fjp | } |
52 | 3698 | caballero | |
53 | 4727 | fjp | /**
|
54 | 29616 | jpiera | * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
|
55 | 4727 | fjp | */
|
56 | 38705 | jldominguez | public void execute(String actionCommand) { |
57 | 10626 | caballero | |
58 | 38705 | jldominguez | if (actionCommand.compareTo("layer-start-editing") == 0) { |
59 | 10626 | caballero | |
60 | 38705 | jldominguez | org.gvsig.andami.ui.mdiManager.IWindow f = |
61 | PluginServices.getMDIManager().getActiveWindow(); |
||
62 | 10626 | caballero | |
63 | 38705 | jldominguez | if (f instanceof DefaultViewPanel) { |
64 | DefaultViewPanel vista = (DefaultViewPanel) f; |
||
65 | 3698 | caballero | |
66 | 38705 | jldominguez | MapControl mapControl = vista.getMapControl(); |
67 | ViewDocument model = vista.getModel(); |
||
68 | FLayer[] actives =
|
||
69 | model.getMapContext().getLayers().getActives(); |
||
70 | 38381 | jldominguez | |
71 | 38705 | jldominguez | if (actives.length == 1 && actives[0] instanceof FLyrVect) { |
72 | 10626 | caballero | |
73 | 38705 | jldominguez | FLyrVect lv = (FLyrVect) actives[0];
|
74 | 10626 | caballero | |
75 | 38705 | jldominguez | if (!lv.getFeatureStore().getTransforms().isEmpty()) {
|
76 | 10626 | caballero | |
77 | 38705 | jldominguez | // cannot edit transformed
|
78 | JOptionPane
|
||
79 | .showMessageDialog( |
||
80 | (Component) f,
|
||
81 | Messages |
||
82 | .get("_Cannot_start_edition_in_transformed_layer")
|
||
83 | + ": '" + lv.getName() + "'", |
||
84 | PluginServices.getText(this, "warning_title"), |
||
85 | JOptionPane.INFORMATION_MESSAGE);
|
||
86 | return;
|
||
87 | } |
||
88 | 38885 | jldominguez | |
89 | if (!lv.isWritable()) {
|
||
90 | JOptionPane.showMessageDialog((Component) f, |
||
91 | PluginServices.getText(this,
|
||
92 | "this_layer_is_not_self_editable"),
|
||
93 | PluginServices.getText(this, "warning_title"), |
||
94 | JOptionPane.WARNING_MESSAGE);
|
||
95 | } |
||
96 | |||
97 | 38705 | jldominguez | EditionManager editionManager = |
98 | CADExtension.getEditionManager(); |
||
99 | 38885 | jldominguez | |
100 | 38705 | jldominguez | try {
|
101 | 38885 | jldominguez | editionManager.editLayer(lv, vista); |
102 | } catch (DataException e) {
|
||
103 | 38790 | jldominguez | |
104 | 38705 | jldominguez | logger.info( |
105 | "Error while starting edition: " + e.getMessage(),
|
||
106 | e); |
||
107 | 10626 | caballero | |
108 | 38705 | jldominguez | ApplicationLocator.getManager().message( |
109 | Messages.get("_Unable_to_start_edition_in_layer")
|
||
110 | + ": " + lv.getName(),
|
||
111 | JOptionPane.ERROR_MESSAGE);
|
||
112 | } |
||
113 | } |
||
114 | } |
||
115 | } |
||
116 | } |
||
117 | 10626 | caballero | |
118 | 38790 | jldominguez | |
119 | 5845 | fjp | // private void registerKeyStrokes() {
|
120 | // JComponent theComponent = vista.getConsolePanel().getTxt();
|
||
121 | 6312 | caballero | //
|
122 | 5845 | fjp | // // The actions
|
123 | // Action F3Action = new AbstractAction("REFENT") {
|
||
124 | // public void actionPerformed(ActionEvent evt) {
|
||
125 | // System.err.println("SOY F3");
|
||
126 | // }
|
||
127 | // };
|
||
128 | //
|
||
129 | // InputMap inputMap = theComponent.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
|
||
130 | // inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), F3Action.getValue(Action.NAME));
|
||
131 | //
|
||
132 | // ActionMap actionMap = theComponent.getActionMap();
|
||
133 | 6312 | caballero | // // actionMap.put("REFENT", new MyAction());
|
134 | 5845 | fjp | // actionMap.put(F3Action.getValue(Action.NAME), F3Action);
|
135 | 6312 | caballero | //
|
136 | 5845 | fjp | // }
|
137 | |||
138 | 31496 | jjdelcerro | public static void startCommandsApplicable(DefaultViewPanel vista,FLyrVect lv) { |
139 | 37518 | jpiera | if (vista==null) |
140 | vista=(DefaultViewPanel)PluginServices.getMDIManager().getActiveWindow(); |
||
141 | |||
142 | CADTool[] cadtools = CADExtension.getCADTools();
|
||
143 | 5177 | caballero | KeywordMap keywordMap = new KeywordMap(true); |
144 | for (int i = 0; i < cadtools.length; i++) { |
||
145 | try {
|
||
146 | if (cadtools[i].isApplicable(lv.getShapeType())){
|
||
147 | keywordMap.add(cadtools[i].getName(), Token.KEYWORD2); |
||
148 | keywordMap.add(cadtools[i].toString(), Token.KEYWORD3); |
||
149 | } |
||
150 | 21666 | vcaballero | } catch (ReadException e) {
|
151 | 12739 | caballero | NotificationManager.addError(e.getMessage(),e); |
152 | 5177 | caballero | } |
153 | |||
154 | } |
||
155 | ConsoleToken consoletoken = new ConsoleToken(keywordMap);
|
||
156 | vista.getConsolePanel().setTokenMarker(consoletoken); |
||
157 | |||
158 | } |
||
159 | |||
160 | 22986 | vcaballero | // private void changeModelTable(ProjectTable pt, VectorialEditableAdapter vea){
|
161 | // com.iver.andami.ui.mdiManager.IWindow[] views = PluginServices.getMDIManager().getAllWindows();
|
||
162 | //
|
||
163 | // for (int i=0 ; i<views.length ; i++){
|
||
164 | // if (views[i] instanceof Table){
|
||
165 | // Table table=(Table)views[i];
|
||
166 | // ProjectTable model =table.getModel();
|
||
167 | // if (model.equals(pt)){
|
||
168 | // table.setModel(pt);
|
||
169 | // vea.getCommandRecord().addCommandListener(table);
|
||
170 | // }
|
||
171 | // }
|
||
172 | // }
|
||
173 | // }
|
||
174 | 4727 | fjp | /**
|
175 | 29616 | jpiera | * @see org.gvsig.andami.plugins.IExtension#isEnabled()
|
176 | 4727 | fjp | */
|
177 | public boolean isEnabled() { |
||
178 | 31404 | vcaballero | return true; |
179 | 4727 | fjp | } |
180 | 3698 | caballero | |
181 | 4727 | fjp | /**
|
182 | 29616 | jpiera | * @see org.gvsig.andami.plugins.IExtension#isVisible()
|
183 | 4727 | fjp | */
|
184 | public boolean isVisible() { |
||
185 | 29616 | jpiera | org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager() |
186 | 6880 | cesar | .getActiveWindow(); |
187 | 3698 | caballero | |
188 | 4727 | fjp | if (f == null) { |
189 | return false; |
||
190 | } |
||
191 | 31496 | jjdelcerro | if (f instanceof DefaultViewPanel){ |
192 | DefaultViewPanel view=(DefaultViewPanel)f; |
||
193 | 31404 | vcaballero | FLayer[] selected = view.getModel().getMapContext().getLayers()
|
194 | .getActives(); |
||
195 | if (selected.length == 1 && selected[0].isAvailable() && selected[0] instanceof FLyrVect) { |
||
196 | if (selected[0].isEditing()) |
||
197 | return false; |
||
198 | return true; |
||
199 | } |
||
200 | } |
||
201 | 6604 | caballero | return false; |
202 | 4727 | fjp | } |
203 | 3698 | caballero | } |