import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
+import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import com.quantum.model.BookmarkCollection;
-import com.quantum.util.xml.XMLHelper;
-import com.quantum.view.subset.SubsetContentProvider;
-
-import org.eclipse.core.resources.ISaveContext;
-import org.eclipse.core.resources.ISaveParticipant;
import org.eclipse.core.resources.ISavedState;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Image;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
+import com.quantum.model.BookmarkCollection;
+import com.quantum.util.xml.XMLHelper;
+import com.quantum.view.subset.SubsetContentProvider;
+
/**
* Main class of the quantum plugin, sets defaults, saves and recovers state.
* @author root
*/
public void startup() throws CoreException {
super.startup();
- ISaveParticipant saveParticipant = new QuantumSaveParticipant();
ISavedState lastState =
ResourcesPlugin.getWorkspace().addSaveParticipant(
this,
- saveParticipant);
+ new QuantumSaveParticipant());
if (lastState != null) {
IPath location = lastState.lookup(new Path(Messages.getString("QuantumPlugin.saveDir"))); //$NON-NLS-1$
if (location != null) {
* @see org.eclipse.core.runtime.Plugin#shutdown()
*/
public void shutdown() throws CoreException {
+ if (!sysClip.isDisposed()) {
+ sysClip.dispose();
+ }
super.shutdown();
- sysClip.dispose();
}
/**
}
}
- /**
- * Gets an image descriptof from a file in the icons directory
- * @param name of the file to get
- * @return ImageDescriptor or null if not found
- */
- public static ImageDescriptor getImageDescriptor(String name) {
- ImageDescriptor descriptor = null;
- try {
- URL installURL =
- QuantumPlugin.getDefault().getDescriptor().getInstallURL();
- URL url = new URL(installURL, Messages.getString("QuantumPlugin.iconsDir") + name); //$NON-NLS-1$
- descriptor = ImageDescriptor.createFromURL(url);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return descriptor;
- }
- public static Image getImage(String name) {
- ImageDescriptor imageDescriptor = getImageDescriptor(name);
- return imageDescriptor == null ? null : imageDescriptor.createImage();
- }
+
+// public static Image getImage(String name) {
+// ImageDescriptor imageDescriptor = getImageDescriptor(name);
+// return imageDescriptor == null ? null : imageDescriptor.createImage();
+// }
protected void initializeDefaultPluginPreferences() {
RGB BACKGROUND = new RGB(255, 255, 255);
return tableView;
}
-
-
- class QuantumSaveParticipant implements ISaveParticipant {
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#doneSaving(ISaveContext)
- */
- public void doneSaving(ISaveContext context) {
- }
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#prepareToSave(ISaveContext)
- */
- public void prepareToSave(ISaveContext context) throws CoreException {
- }
-
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#rollback(ISaveContext)
- */
- public void rollback(ISaveContext context) {
- }
-
- /**
- * @see org.eclipse.core.resources.ISaveParticipant#saving(ISaveContext)
- */
- public void saving(ISaveContext context) throws CoreException {
- switch (context.getKind()) {
- case ISaveContext.FULL_SAVE :
- QuantumPlugin quantumPluginInstance = QuantumPlugin.getDefault();
- // save the plug in state
- if (BookmarkCollection.getInstance().isAnythingChanged()
- || SubsetContentProvider.getInstance().hasChanged()) {
-
- int saveNumber = context.getSaveNumber();
- String saveFileName = Messages.getString("QuantumPlugin.saveDir") + "-" + Integer.toString(saveNumber) + Messages.getString("QuantumPlugin.saveFileExtension"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- File f = quantumPluginInstance.getStateLocation().append(saveFileName).toFile();
-
- // if we fail to write, an exception is thrown and we do not update the path
- quantumPluginInstance.writeImportantState(f);
-
- context.map(new Path(Messages.getString("QuantumPlugin.saveDir")), new Path(saveFileName)); //$NON-NLS-1$
- context.needSaveNumber();
-
- } else {
- System.out.println("Not saving unchanged bookmarks"); //$NON-NLS-1$
- }
- break;
- case ISaveContext.PROJECT_SAVE :
- // get the project related to this save operation
- //IProject project = context.getProject();
- // save its information, if necessary
- break;
- case ISaveContext.SNAPSHOT :
- // This operation needs to be really fast because
- // snapshots can be requested frequently by the
- // workspace.
- break;
- }
- }
- }
/**
* @return
*/
public Clipboard getSysClip() {
return sysClip;
}
+ protected void initializeImageRegistry(ImageRegistry registry) {
+ super.initializeImageRegistry(registry);
+ try {
+ ImageStore.initialize(registry, getIconLocation());
+ } catch (MalformedURLException e) {
+ // this should never happen, but if it does, we don't get images.
+ }
+ }
+
+ /**
+ * @return
+ * @throws MalformedURLException
+ */
+ URL getIconLocation() throws MalformedURLException {
+ URL installURL = QuantumPlugin.getDefault().getDescriptor().getInstallURL();
+ return new URL(installURL, "icons/");
+ }
}
\ No newline at end of file