[jbosstools-commits] JBoss Tools SVN: r6315 - trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Feb 14 09:42:05 EST 2008


Author: dazarov
Date: 2008-02-14 09:42:05 -0500 (Thu, 14 Feb 2008)
New Revision: 6315

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-14 14:35:23 UTC (rev 6314)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java	2008-02-14 14:42:05 UTC (rev 6315)
@@ -11,12 +11,16 @@
 
 package org.jboss.tools.seam.ui.wizard;
 
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
 import java.util.Comparator;
 import java.util.Iterator;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.dialogs.DialogSettings;
@@ -34,6 +38,7 @@
 import org.jboss.tools.seam.core.ISeamProject;
 import org.jboss.tools.seam.core.SeamCorePlugin;
 import org.jboss.tools.seam.internal.core.SeamComponent;
+import org.jboss.tools.seam.ui.SeamGuiPlugin;
 import org.jboss.tools.seam.ui.SeamUIMessages;
 import org.jboss.tools.seam.ui.SeamUiImages;
 import org.jboss.tools.seam.ui.views.SeamReferencedFilter;
@@ -43,17 +48,19 @@
  * 
  */
 public class OpenSeamComponentDialog extends FilteredItemsSelectionDialog {
-	private static SeamComponentSelectionHistory history = null;
+	private static final String fileName="OpenSeamComponentHistory.xml";
 	
 	public OpenSeamComponentDialog(Shell shell) {
 		super(shell);
 		
-		if(history == null)
-			history = new SeamComponentSelectionHistory();
+		setSelectionHistory(new SeamComponentSelectionHistory());
 		
-		setSelectionHistory(history);
 		setListLabelProvider(new SeamComponentLabelProvider());
 		setDetailsLabelProvider(new SeamComponentLabelProvider());
+		
+		XMLMemento memento = load();
+		if(memento != null)
+			getSelectionHistory().load(memento);
 	}
 	
 	protected Control createExtendedContentArea(Composite parent) {
@@ -63,7 +70,7 @@
 	protected ItemsFilter createFilter() {
 		return new SeamComponentFilter();
 	}
-
+	
 	protected void fillContentProvider(AbstractContentProvider contentProvider,
 			ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
 			throws CoreException {
@@ -90,6 +97,24 @@
 		}
 		progressMonitor.done();
 	}
+	
+	public XMLMemento load() {
+		XMLMemento memento=null;
+		IPath stateLocation= SeamGuiPlugin.getDefault().getStateLocation().append(fileName);
+		File file= new File(stateLocation.toOSString());
+		if(file.exists()){
+			FileReader reader= null;
+			try {
+				reader = new FileReader(file);
+				
+				memento = XMLMemento.createReadRoot(reader);
+				reader.close();
+			} catch (Exception ex) {
+				ex.printStackTrace();
+			}
+		}
+		return memento;
+	}
 
 	protected IDialogSettings getDialogSettings() {
 		return new DialogSettings(SeamUIMessages.OPEN_SEAM_COMPONENT_DIALOG_NAME);
@@ -174,6 +199,7 @@
 	}
 	
 	public class SeamComponentSelectionHistory extends SelectionHistory{
+		 
 		public SeamComponentSelectionHistory(){
 			super();
 		}
@@ -185,10 +211,14 @@
 			String componentName = mem.getString("ComponentName");
 			if(componentName == null) return null;
 			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-			ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
-			ISeamComponent component = seamProject.getComponent(componentName);
-			
-			return component;
+			if(project != null){
+				ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
+				if(seamProject != null){
+					ISeamComponent component = seamProject.getComponent(componentName);
+					return component;
+				}
+			}
+			return null;
 		}
 
 		@Override
@@ -199,6 +229,24 @@
 			mem.putString("ComponentName", component.getName());
 		}
 		
+		public void save(IMemento memento) {
+			super.save(memento);
+			if(!(memento instanceof XMLMemento)) return;
+			XMLMemento xmlMemento = (XMLMemento)memento;
+			IPath stateLocation= SeamGuiPlugin.getDefault().getStateLocation().append(fileName);
+			File file= new File(stateLocation.toOSString());
+			FileWriter writer= null;
+			try {
+				writer = new FileWriter(file);
+				
+				xmlMemento.save(writer);
+				writer.close();
+			} catch (Exception ex) {
+				ex.printStackTrace();
+			}
+		}
+		
+		
 	}
 	
 	public class SeamComponentLabelProvider implements ILabelProvider{




More information about the jbosstools-commits mailing list