X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/PHPEclipseSQLPlugin.java b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/PHPEclipseSQLPlugin.java index a08b9e0..5926e37 100644 --- a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/PHPEclipseSQLPlugin.java +++ b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/PHPEclipseSQLPlugin.java @@ -1,9 +1,17 @@ package net.sourceforge.phpdt.sql; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.net.URL; -import java.util.ResourceBundle; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.crimson.tree.XmlDocument; import org.eclipse.core.resources.ISaveContext; import org.eclipse.core.resources.ISaveParticipant; import org.eclipse.core.resources.ISavedState; @@ -18,22 +26,22 @@ import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.RGB; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; -import net.sourceforge.phpdt.sql.sql.MultiSQLServer; import net.sourceforge.phpdt.sql.view.bookmark.BookmarkContentProvider; +import net.sourceforge.phpdt.sql.view.bookmark.SubsetContentProvider; /** * @author */ -public class PHPEclipseSQLPlugin - extends AbstractUIPlugin - implements IConstants { - - private static final String BUNDLE_NAME = - "net.sourceforge.phpdt.sql.PHPEclipseSQLResources"; - private static final ResourceBundle RESOURCE_BUNDLE = - ResourceBundle.getBundle(BUNDLE_NAME); +public class PHPEclipseSQLPlugin extends AbstractUIPlugin implements IConstants { private static PHPEclipseSQLPlugin plugin; public final static String PLUGIN_ID = "net.sourceforge.phpeclipse.sql"; @@ -46,15 +54,50 @@ public class PHPEclipseSQLPlugin public static PHPEclipseSQLPlugin getDefault() { return plugin; } + /** + * Reads the PHPEclipseSQL Plugin state from a file. The file has been created with writeImportantState + * @param target + */ protected void readStateFrom(File target) { - BookmarkContentProvider.getInstance().load(target); + String fileName = target.getName(); + // if (!fileName.endsWith("ext")) { //$NON-NLS-1$ + // // It's the 2.0 format for preferences + // BookmarkContentProvider.getInstance().load(target); + // } else { + //It's the 2.1 format for preferences and subsets + XmlDocument doc = new XmlDocument(); + FileInputStream source = null; + try { + source = new FileInputStream(target); + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + return; + } + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder parser; + try { + parser = factory.newDocumentBuilder(); + doc = (XmlDocument) parser.parse(source); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + return; + } catch (SAXException e) { + e.printStackTrace(); + return; + } catch (IOException e) { + e.printStackTrace(); + return; + } + Element root = doc.getDocumentElement(); + BookmarkContentProvider.getInstance().importXML(root); + SubsetContentProvider.getInstance().importXML(root); + // } } public void startup() throws CoreException { super.startup(); ISaveParticipant saveParticipant = new PHPSQLSaveParticipant(); - ISavedState lastState = - ResourcesPlugin.getWorkspace().addSaveParticipant(this, saveParticipant); + ISavedState lastState = ResourcesPlugin.getWorkspace().addSaveParticipant(this, saveParticipant); if (lastState == null) return; IPath location = lastState.lookup(new Path("save")); @@ -64,14 +107,39 @@ public class PHPEclipseSQLPlugin File f = getStateLocation().append(location).toFile(); readStateFrom(f); } + protected void writeImportantState(File target) { - BookmarkContentProvider.getInstance().save(target); + XmlDocument doc = new XmlDocument(); + FileOutputStream out = null; + try { + out = new FileOutputStream(target); + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + return; + } + Element root = (Element) doc.appendChild(doc.createElement(Messages.getString("ExportXMLAction.SavedData"))); //$NON-NLS-1$ + + BookmarkContentProvider.getInstance().exportXML(root); + SubsetContentProvider.getInstance().exportXML(root); + + try { + doc.write(out); + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 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 = - PHPEclipseSQLPlugin.getDefault().getDescriptor().getInstallURL(); + URL installURL = PHPEclipseSQLPlugin.getDefault().getDescriptor().getInstallURL(); URL url = new URL(installURL, "icons/" + name); descriptor = ImageDescriptor.createFromURL(url); } catch (Exception e) { @@ -84,45 +152,28 @@ public class PHPEclipseSQLPlugin } public void dispose() throws CoreException { - MultiSQLServer.getInstance().shutdown(); } protected void initializeDefaultPluginPreferences() { RGB BACKGROUND = new RGB(255, 255, 255); RGB COMMENT = new RGB(88, 148, 64); - RGB IDENTIFIER = new RGB(0, 0, 0); RGB KEYWORD = new RGB(126, 0, 75); RGB STRING = new RGB(0, 0, 255); RGB NUMERIC = new RGB(255, 0, 0); RGB DEFAULT = new RGB(0, 0, 0); IPreferenceStore store = getPreferenceStore(); - PreferenceConverter.setDefault( - store, - "phpeclipse.sql.background.color", - BACKGROUND); + PreferenceConverter.setDefault(store, "phpeclipse.sql.background.color", BACKGROUND); PreferenceConverter.setDefault(store, "phpeclipse.sql.text.color", DEFAULT); - PreferenceConverter.setDefault( - store, - "phpeclipse.sql.keyword.color", - KEYWORD); - PreferenceConverter.setDefault( - store, - "phpeclipse.sql.comment.color", - COMMENT); - PreferenceConverter.setDefault( - store, - "phpeclipse.sql.string.color", - STRING); - PreferenceConverter.setDefault( - store, - "phpeclipse.sql.numeric.color", - NUMERIC); + PreferenceConverter.setDefault(store, "phpeclipse.sql.keyword.color", KEYWORD); + PreferenceConverter.setDefault(store, "phpeclipse.sql.comment.color", COMMENT); + PreferenceConverter.setDefault(store, "phpeclipse.sql.string.color", STRING); + PreferenceConverter.setDefault(store, "phpeclipse.sql.numeric.color", NUMERIC); getPreferenceStore().setDefault("phpeclipse.sql.text.bold", false); getPreferenceStore().setDefault("phpeclipse.sql.keyword.bold", true); getPreferenceStore().setDefault("phpeclipse.sql.string.bold", false); getPreferenceStore().setDefault("phpeclipse.sql.comment.bold", false); getPreferenceStore().setDefault("phpeclipse.sql.numeric.bold", false); - + PreferenceConverter.setDefault(getPreferenceStore(), "phpeclipsesql.font", (FontData) null); //$NON-NLS-1$ getPreferenceStore().setDefault( "phpeclipse.sql.select.template", "$results = mysql_query(\"SELECT {0} FROM {1} WHERE {2} \");"); @@ -131,34 +182,37 @@ public class PHPEclipseSQLPlugin "phpeclipse.sql.insert.template", "$results = mysql_query(\"INSERT INTO {0} ({1}) VALUES {2} \");"); - getPreferenceStore().setDefault( - "phpeclipse.sql.update.template", - "$results = mysql_query(\"UPDATE {0} SET {1} WHERE {2} \");"); + getPreferenceStore().setDefault("phpeclipse.sql.update.template", "$results = mysql_query(\"UPDATE {0} SET {1} WHERE {2} \");"); - getPreferenceStore().setDefault( - "phpeclipse.sql.delete.template", - "$results = mysql_query(\"DELETE FROM {0} WHERE {1} \");"); + getPreferenceStore().setDefault("phpeclipse.sql.delete.template", "$results = mysql_query(\"DELETE FROM {0} WHERE {1} \");"); getPreferenceStore().setDefault("phpeclipse.sql.username.connect", "root"); - getPreferenceStore().setDefault( - "phpeclipse.sql.connect.connect", - "jdbc:mysql://localhost/test"); + getPreferenceStore().setDefault("phpeclipse.sql.connect.connect", "jdbc:mysql://localhost/mysql"); - getPreferenceStore().setDefault( - "phpeclipse.sql.driver.connect", - "com.mysql.jdbc.Driver"); + getPreferenceStore().setDefault("phpeclipse.sql.driver.connect", "com.mysql.jdbc.Driver"); getPreferenceStore().setDefault("phpeclipse.sql.type.connect", "MySQL"); getPreferenceStore().setDefault( "phpeclipse.sql.filename.connect", - "C:\\apache\\mysql\\lib\\mysql-connector-java-2.0.14-bin.jar"); + "C:\\wampp2\\mysql\\lib\\mysql-connector.jar"); + } + + public boolean showView(String view) { + IWorkbench workbench = getWorkbench(); + IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = window.getActivePage(); + IViewPart viewPart = null; + try { + viewPart = page.showView(view); + } catch (PartInitException e) { + e.printStackTrace(); + return false; + } - PreferenceConverter.setDefault( - getPreferenceStore(), - "phpeclipse.sql.font", - (FontData) null); + PreferenceConverter.setDefault(getPreferenceStore(), "phpeclipse.sql.font", (FontData) null); + return (viewPart != null); } } @@ -187,14 +241,12 @@ class PHPSQLSaveParticipant implements ISaveParticipant, IConstants { public void saving(ISaveContext context) throws CoreException { switch (context.getKind()) { case ISaveContext.FULL_SAVE : - PHPEclipseSQLPlugin sqlPluginInstance = - PHPEclipseSQLPlugin.getDefault(); + PHPEclipseSQLPlugin sqlPluginInstance = PHPEclipseSQLPlugin.getDefault(); // save the plug in state if (BookmarkContentProvider.getInstance().hasChanged()) { int saveNumber = context.getSaveNumber(); String saveFileName = "save " + Integer.toString(saveNumber); - File f = - sqlPluginInstance.getStateLocation().append(saveFileName).toFile(); + File f = sqlPluginInstance.getStateLocation().append(saveFileName).toFile(); // if we fail to write, an exception is thrown and we do not update the path sqlPluginInstance.writeImportantState(f); context.map(new Path("save"), new Path(saveFileName));