Revision 44505 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/java/org/gvsig/app/extension/TableEditAttributes.java
TableEditAttributes.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import java.awt.event.ActionEvent; |
27 | 27 |
import java.awt.event.ActionListener; |
28 |
import javax.swing.AbstractAction; |
|
29 |
import static javax.swing.Action.ACTION_COMMAND_KEY; |
|
30 |
import static javax.swing.Action.NAME; |
|
28 | 31 |
import javax.swing.event.ChangeEvent; |
29 | 32 |
import javax.swing.event.ChangeListener; |
30 | 33 |
import org.gvsig.andami.IconThemeHelper; |
... | ... | |
36 | 39 |
import org.gvsig.app.project.documents.table.TableDocument; |
37 | 40 |
import org.gvsig.app.project.documents.table.TableManager; |
38 | 41 |
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel; |
42 |
import org.gvsig.configurableactions.ConfigurableActionsMamager; |
|
39 | 43 |
import org.gvsig.fmap.dal.DataTypes; |
40 | 44 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
41 | 45 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
... | ... | |
51 | 55 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
52 | 56 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
53 | 57 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
58 |
import org.gvsig.tools.util.ToolsUtilLocator; |
|
54 | 59 |
|
55 | 60 |
/** |
56 | 61 |
* Extensi?n que abre la ventana para cambiar la configuraci?n de la estructura |
... | ... | |
64 | 69 |
public void initialize() { |
65 | 70 |
IconThemeHelper.registerIcon("action", "table-column-manager", this); |
66 | 71 |
IconThemeHelper.registerIcon("action", "table-add-column", this); |
72 |
ConfigurableActionsMamager cfgActionsManager = ToolsUtilLocator.getConfigurableActionsMamager(); |
|
73 |
cfgActionsManager.addConfigurableAction(FeatureTypePanel.CONFIGURABLE_PANEL_ID, new ShowAsTableAction()); |
|
67 | 74 |
} |
68 | 75 |
|
69 | 76 |
@Override |
... | ... | |
92 | 99 |
final EditableFeatureType editableFeatureType = featureType.getEditable(); |
93 | 100 |
final FeatureTypePanel panel = dataSwingManager.createFeatureTypePanel(); |
94 | 101 |
panel.put(editableFeatureType); |
95 |
panel.setEditable(featureStore.isEditing()); |
|
102 |
panel.setMode( |
|
103 |
featureStore.isEditing()? |
|
104 |
FeatureTypePanel.MODE_EDIT_ALL: |
|
105 |
FeatureTypePanel.MODE_EDIT_ONLY_METADATA |
|
106 |
); |
|
96 | 107 |
final Dialog dialog = winManager.createDialog( |
97 | 108 |
panel.asJComponent(), |
98 | 109 |
i18n.getTranslation("_Column_manager") + " - " + tabledoc.getName(), |
99 | 110 |
null, |
100 |
featureStore.isEditing()? |
|
101 |
WindowManager_v2.BUTTONS_APPLY_OK_CANCEL: |
|
102 |
WindowManager_v2.BUTTONS_OK_CANCEL |
|
111 |
WindowManager_v2.BUTTONS_OK_CANCEL |
|
103 | 112 |
); |
104 |
if( featureStore.isEditing() ) { |
|
105 |
dialog.setButtonLabel( |
|
106 |
WindowManager_v2.BUTTON_APPLY, |
|
107 |
i18n.getTranslation("_Show_as_table") |
|
108 |
); |
|
109 |
panel.addChangeListener(new ChangeListener() { |
|
110 |
@Override |
|
111 |
public void stateChanged(ChangeEvent e) { |
|
112 |
if( panel.isModifyingAField() ) { |
|
113 |
dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK, false); |
|
114 |
dialog.setButtonEnabled(WindowManager_v2.BUTTON_APPLY, false); |
|
115 |
} else { |
|
116 |
dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK, true); |
|
117 |
dialog.setButtonEnabled(WindowManager_v2.BUTTON_APPLY, true); |
|
118 |
} |
|
113 |
panel.addChangeListener(new ChangeListener() { |
|
114 |
@Override |
|
115 |
public void stateChanged(ChangeEvent e) { |
|
116 |
if( panel.isModifyingAField() ) { |
|
117 |
dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK, false); |
|
118 |
} else { |
|
119 |
dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK, true); |
|
119 | 120 |
} |
120 |
}); |
|
121 |
} else { |
|
122 |
dialog.setButtonLabel( |
|
123 |
WindowManager_v2.BUTTON_CANCEL, |
|
124 |
i18n.getTranslation("_Show_as_table") |
|
125 |
); |
|
126 |
} |
|
121 |
} |
|
122 |
}); |
|
127 | 123 |
dialog.addActionListener(new ActionListener() { |
128 | 124 |
@Override |
129 | 125 |
public void actionPerformed(ActionEvent e) { |
130 |
if( featureStore.isEditing() ) { |
|
131 |
switch(dialog.getAction()) { |
|
132 |
case WindowManager_v2.BUTTON_OK: |
|
133 |
break; |
|
134 |
case WindowManager_v2.BUTTON_APPLY: |
|
135 |
showAsTable(featureType); |
|
136 |
return; |
|
137 |
case WindowManager_v2.BUTTON_CANCEL: |
|
138 |
return; |
|
139 |
} |
|
140 |
} else { |
|
141 |
switch(dialog.getAction()) { |
|
142 |
case WindowManager_v2.BUTTON_OK: |
|
143 |
return; |
|
144 |
case WindowManager_v2.BUTTON_APPLY: |
|
145 |
case WindowManager_v2.BUTTON_CANCEL: |
|
146 |
showAsTable(featureType); |
|
147 |
return; |
|
148 |
} |
|
126 |
if( dialog.getAction()!= WindowManager_v2.BUTTON_OK ) { |
|
127 |
return; |
|
149 | 128 |
} |
150 | 129 |
try { |
151 | 130 |
panel.fetch(editableFeatureType); |
... | ... | |
202 | 181 |
} |
203 | 182 |
} |
204 | 183 |
|
205 |
private void showAsTable(FeatureType featureType) { |
|
206 |
FeatureStore store = featureType.getAsFeatureStore(); |
|
184 |
public static class ShowAsTableAction extends AbstractAction { |
|
207 | 185 |
|
208 |
ProjectManager projectManager = ApplicationLocator.getManager().getProjectManager(); |
|
209 |
Project project = projectManager.getCurrentProject(); |
|
210 |
TableDocument tableDoc = (TableDocument) project.getDocument(store.getName(),TableManager.TYPENAME); |
|
211 |
if( tableDoc == null ) { |
|
212 |
tableDoc = (TableDocument) projectManager.createDocument(TableManager.TYPENAME); |
|
213 |
tableDoc.setStore(store); |
|
214 |
tableDoc.setName(store.getName()); |
|
215 |
project.addDocument(tableDoc); |
|
186 |
@SuppressWarnings("OverridableMethodCallInConstructor") |
|
187 |
public ShowAsTableAction() { |
|
188 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
|
189 |
|
|
190 |
this.putValue(NAME, i18n.getTranslation("_Show_as_table")); |
|
191 |
this.putValue(ACTION_COMMAND_KEY, "ShowAsTable"); |
|
216 | 192 |
} |
217 |
ApplicationLocator.getManager().getUIManager().addWindow(tableDoc.getMainWindow()); |
|
193 |
|
|
194 |
@Override |
|
195 |
public void actionPerformed(ActionEvent ae) { |
|
196 |
FeatureTypePanel panel = (FeatureTypePanel) ae.getSource(); |
|
197 |
EditableFeatureType featureType = panel.fetch(null); |
|
198 |
FeatureStore store = featureType.getAsFeatureStore(); |
|
199 |
|
|
200 |
ProjectManager projectManager = ApplicationLocator.getManager().getProjectManager(); |
|
201 |
Project project = projectManager.getCurrentProject(); |
|
202 |
TableDocument tableDoc = (TableDocument) project.getDocument(store.getName(),TableManager.TYPENAME); |
|
203 |
if( tableDoc == null ) { |
|
204 |
tableDoc = (TableDocument) projectManager.createDocument(TableManager.TYPENAME); |
|
205 |
tableDoc.setStore(store); |
|
206 |
tableDoc.setName(store.getName()); |
|
207 |
project.addDocument(tableDoc); |
|
208 |
} |
|
209 |
ApplicationLocator.getManager().getUIManager().addWindow(tableDoc.getMainWindow()); |
|
210 |
} |
|
218 | 211 |
} |
219 |
|
|
220 | 212 |
|
221 | 213 |
@Override |
222 | 214 |
public boolean isEnabled() { |
Also available in: Unified diff