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;
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 {
- 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";
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 QuantumSaveParticipant();
- ISavedState lastState =
- ResourcesPlugin.getWorkspace().addSaveParticipant(this, saveParticipant);
+ ISaveParticipant saveParticipant = new PHPSQLSaveParticipant();
+ ISavedState lastState = ResourcesPlugin.getWorkspace().addSaveParticipant(this, saveParticipant);
if (lastState == null)
return;
IPath location = lastState.lookup(new Path("save"));
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) {
}
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,
- "quantum.background.color",
- BACKGROUND);
- PreferenceConverter.setDefault(store, "quantum.text.color", DEFAULT);
- PreferenceConverter.setDefault(store, "quantum.keyword.color", KEYWORD);
- PreferenceConverter.setDefault(store, "quantum.comment.color", COMMENT);
- PreferenceConverter.setDefault(store, "quantum.string.color", STRING);
- PreferenceConverter.setDefault(store, "quantum.numeric.color", NUMERIC);
- getPreferenceStore().setDefault("quantum.text.bold", false);
- getPreferenceStore().setDefault("quantum.keyword.bold", true);
- getPreferenceStore().setDefault("quantum.string.bold", false);
- getPreferenceStore().setDefault("quantum.comment.bold", false);
- getPreferenceStore().setDefault("quantum.numeric.bold", false);
- PreferenceConverter.setDefault(
- getPreferenceStore(),
- "quantum.font",
- (FontData) null);
+ 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);
+ 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} \");");
+
+ getPreferenceStore().setDefault(
+ "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.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/mysql");
+
+ getPreferenceStore().setDefault("phpeclipse.sql.driver.connect", "com.mysql.jdbc.Driver");
+
+ getPreferenceStore().setDefault("phpeclipse.sql.type.connect", "MySQL");
+
+ getPreferenceStore().setDefault(
+ "phpeclipse.sql.filename.connect",
+ "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);
+ return (viewPart != null);
}
}
-class QuantumSaveParticipant implements ISaveParticipant {
+class PHPSQLSaveParticipant implements ISaveParticipant, IConstants {
/**
* @see org.eclipse.core.resources.ISaveParticipant#doneSaving(ISaveContext)
*/
public void saving(ISaveContext context) throws CoreException {
switch (context.getKind()) {
case ISaveContext.FULL_SAVE :
- PHPEclipseSQLPlugin quantumPluginInstance = 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 =
- quantumPluginInstance
- .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
- quantumPluginInstance.writeImportantState(f);
+ sqlPluginInstance.writeImportantState(f);
context.map(new Path("save"), new Path(saveFileName));
context.needSaveNumber();
} else {
- System.out.println("Not saving unchanged bookmarks");
+ if (DEBUG) {
+ System.out.println("Not saving unchanged bookmarks");
+ }
}
break;
case ISaveContext.PROJECT_SAVE :