Author: dazarov
Date: 2008-02-20 07:40:55 -0500 (Wed, 20 Feb 2008)
New Revision: 6460
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-518
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java 2008-02-20
12:36:07 UTC (rev 6459)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java 2008-02-20
12:40:55 UTC (rev 6460)
@@ -50,6 +50,7 @@
private static final String FILE_NAME = "OpenSeamComponentHistory.xml";
//$NON-NLS-1$
private static final String PROJECT_NAME = "ProjectName"; //$NON-NLS-1$
private static final String COMPONENT_NAME = "ComponentName"; //$NON-NLS-1$
+ private static final String COMPONENT_DELETED = "ComponentDeleted";
//$NON-NLS-1$
public OpenSeamComponentDialog(Shell shell) {
super(shell);
@@ -58,8 +59,10 @@
setListLabelProvider(new SeamComponentLabelProvider());
setDetailsLabelProvider(new SeamComponentLabelProvider());
+
+ //validateHistory();
- XMLMemento memento = load();
+ XMLMemento memento = loadMemento();
if (memento != null)
getSelectionHistory().load(memento);
}
@@ -117,7 +120,7 @@
progressMonitor.done();
}
- private XMLMemento load() {
+ private static XMLMemento loadMemento() {
XMLMemento memento = null;
IPath stateLocation = SeamGuiPlugin.getDefault().getStateLocation()
.append(FILE_NAME);
@@ -135,6 +138,21 @@
}
return memento;
}
+
+ private static void saveMemento(XMLMemento xmlMemento){
+ IPath stateLocation = SeamGuiPlugin.getDefault().getStateLocation()
+ .append(FILE_NAME);
+ File file = new File(stateLocation.toOSString());
+ FileWriter writer = null;
+ try {
+ writer = new FileWriter(file);
+
+ xmlMemento.save(writer);
+ writer.close();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
protected IDialogSettings getDialogSettings() {
return new DialogSettings(
@@ -236,6 +254,10 @@
String componentName = mem.getString(COMPONENT_NAME);
if (componentName == null)
return null;
+ String componentDeleted = mem.getString(COMPONENT_DELETED);
+ if (componentDeleted != null && "yes".equals(componentDeleted))
+ return null;
+
return new SeamComponentWrapper(componentName, projectName);
}
@@ -252,18 +274,7 @@
if (!(memento instanceof XMLMemento))
return;
XMLMemento xmlMemento = (XMLMemento) memento;
- IPath stateLocation = SeamGuiPlugin.getDefault().getStateLocation()
- .append(FILE_NAME);
- File file = new File(stateLocation.toOSString());
- FileWriter writer = null;
- try {
- writer = new FileWriter(file);
-
- xmlMemento.save(writer);
- writer.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
+ saveMemento(xmlMemento);
}
}
@@ -351,4 +362,49 @@
}
}
+
+
+ public static void validateHistory(){
+ XMLMemento memento = loadMemento();
+ if(memento != null){
+ XMLMemento historyMemento = (XMLMemento) memento
+ .getChild("historyRootNode");
+
+ if (historyMemento == null) {
+ return;
+ }
+
+ IMemento[] mementoElements = historyMemento
+ .getChildren("infoNode");
+ for (int i = 0; i < mementoElements.length; ++i) {
+ IMemento mem = mementoElements[i];
+ String projectName = mem.getString(PROJECT_NAME);
+ if (projectName == null){
+ mem.putString(COMPONENT_DELETED, "yes");
+ continue;
+ }
+ String componentName = mem.getString(COMPONENT_NAME);
+ if (componentName == null){
+ mem.putString(COMPONENT_DELETED, "yes");
+ continue;
+ }
+ IProject project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
+ if (project != null) {
+ ISeamProject seamProject = SeamCorePlugin.getSeamProject(
+ project, true);
+ if (seamProject != null) {
+ ISeamComponent component = seamProject
+ .getComponent(componentName);
+ if(component == null)
+ mem.putString(COMPONENT_DELETED, "yes");
+ }else
+ mem.putString(COMPONENT_DELETED, "yes");
+ }else
+ mem.putString(COMPONENT_DELETED, "yes");
+
+ }
+ saveMemento(memento);
+ }
+ }
}