X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/bookmark/BookmarkContentProvider.java b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/bookmark/BookmarkContentProvider.java index ec997fa..da8fceb 100644 --- a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/bookmark/BookmarkContentProvider.java +++ b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/bookmark/BookmarkContentProvider.java @@ -2,14 +2,16 @@ package net.sourceforge.phpdt.sql.view.bookmark; import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; import java.util.Properties; import java.util.Vector; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; import net.sourceforge.phpdt.sql.bookmarks.Bookmark; +import net.sourceforge.phpdt.sql.sql.metadata.MetaDataXMLInterface; public class BookmarkContentProvider implements ITreeContentProvider { private Vector bookmarks = new Vector(); @@ -29,21 +31,12 @@ public class BookmarkContentProvider implements ITreeContentProvider { private BookmarkContentProvider() { } - public void importBookmarks(File file) { - hasChanged = true; - System.out.println("Importing Bookmarks: Loading from file: " + file); - try { - Properties props = new Properties(); - FileInputStream in = new FileInputStream(file); - props.load(in); - in.close(); - fromProperties(false, props); - } catch (Throwable e) { - e.printStackTrace(); - } - } + /** + * Imports the bookmars from a File, supposed to be in XML format and have the correct tags. + * @param file + */ public void load(File file) { - System.out.println("Bookmarks: Loading from file: " + file); + System.out.println("Bookmarks: Loading from file: " + file); //$NON-NLS-1$ try { Properties props = new Properties(); FileInputStream in = new FileInputStream(file); @@ -54,18 +47,62 @@ public class BookmarkContentProvider implements ITreeContentProvider { e.printStackTrace(); } } - public void save(File file) { - System.out.println("Bookmarks: Saving to file: " + file); - try { - Properties props = getProperties(); - FileOutputStream out = new FileOutputStream(file); - props.store(out, ""); - out.close(); - } catch (Throwable e) { - e.printStackTrace(); + + /** + * Exports a Bookmark data to an XMLDocument Element + * The complementary function is importXML() + * @param root The Element to fill up with the bookmark info + */ + public void exportXML(Element root) { + System.out.println("Bookmarks: Saving to Element"); //$NON-NLS-1$ + Element bookmarkRoot = MetaDataXMLInterface.createElementText(root,"bookmarks", ""); //$NON-NLS-1$ //$NON-NLS-2$ + for (int i = 0; i < bookmarks.size(); i++) { + Bookmark b = (Bookmark) bookmarks.elementAt(i); + Element bookmark = MetaDataXMLInterface.createElementText(bookmarkRoot,"bookmark", ""); //$NON-NLS-1$ //$NON-NLS-2$ + MetaDataXMLInterface.createElementText(bookmark,"name", b.getName()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"username", b.getUsername()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"password", b.getPassword()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"schema", b.getSchema()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"connect", b.getConnect()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"driver", b.getDriver()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"type", b.getType()); //$NON-NLS-1$ + MetaDataXMLInterface.createElementText(bookmark,"driverLocation", b.getDriverFile()); //$NON-NLS-1$ } } - + + /** + * Imports a Bookmark data from an XMLDocument Element + * The complementary function is exportXML() + * @param root The Element from which to load + */ + public void importXML(Element root) { + System.out.println("Bookmarks: Loading from Element"); //$NON-NLS-1$ + Vector newBookmarks = new Vector(); + NodeList nodes = root.getElementsByTagName("bookmark"); //$NON-NLS-1$ + for (int i = 0; i < nodes.getLength(); i++) { + Bookmark bookmark = new BookmarkNode(); + Element column = (Element) nodes.item(i); + + String name = MetaDataXMLInterface.getElementText(column,"name"); //$NON-NLS-1$ + if (name == null) break; + bookmark.setName(name); + + MetaDataXMLInterface.getElementText(column,"name"); //$NON-NLS-1$ + bookmark.setUsername(MetaDataXMLInterface.getElementText(column,"username")); //$NON-NLS-1$ + bookmark.setPassword(MetaDataXMLInterface.getElementText(column,"password")); //$NON-NLS-1$ + bookmark.setConnect(MetaDataXMLInterface.getElementText(column,"connect")); //$NON-NLS-1$ + bookmark.setDriver(MetaDataXMLInterface.getElementText(column,"driver")); //$NON-NLS-1$ + bookmark.setSchema(MetaDataXMLInterface.getElementText(column,"schema")); //$NON-NLS-1$ + bookmark.setType(MetaDataXMLInterface.getElementText(column,"type")); //$NON-NLS-1$ + bookmark.setDriverFile(MetaDataXMLInterface.getElementText(column,"driverLocation")); //$NON-NLS-1$ + System.out.println(bookmark.toString()); + if (!bookmark.isEmpty()) { + newBookmarks.addElement(bookmark); + } + } + bookmarks = newBookmarks; + } + public Object[] getChildren(Object parentElement) { if (parentElement.equals(Root.ROOT)) { return bookmarks.toArray(); @@ -75,7 +112,19 @@ public class BookmarkContentProvider implements ITreeContentProvider { } return Root.EMPTY_ARRAY; } - + /** + * Finds a Bookmark with the specified name, and returs it. Null if nothing found. + * @param name + * @return + */ + public BookmarkNode find(String name){ + for (int i = 0; i < bookmarks.size(); i++) { + BookmarkNode b = (BookmarkNode) bookmarks.elementAt(i); + if (b.getName().equals(name)) return b; + } + return null; + } + public Object[] getElements(Object inputElement) { return getChildren(inputElement); } @@ -136,32 +185,32 @@ public class BookmarkContentProvider implements ITreeContentProvider { int i = 0; while (true) { Bookmark bookmark = new BookmarkNode(); - String name = props.getProperty(i + ".name"); + String name = props.getProperty(i + ".name"); //$NON-NLS-1$ if (name == null) { break; } bookmark.setName(name); - bookmark.setUsername(props.getProperty(i + ".username")); - bookmark.setPassword(props.getProperty(i + ".password")); - bookmark.setConnect(props.getProperty(i + ".connect")); - bookmark.setDriver(props.getProperty(i + ".driver")); - String schema = props.getProperty(i + ".schema"); + bookmark.setUsername(props.getProperty(i + ".username")); //$NON-NLS-1$ + bookmark.setPassword(props.getProperty(i + ".password")); //$NON-NLS-1$ + bookmark.setConnect(props.getProperty(i + ".connect")); //$NON-NLS-1$ + bookmark.setDriver(props.getProperty(i + ".driver")); //$NON-NLS-1$ + String schema = props.getProperty(i + ".schema"); //$NON-NLS-1$ if (schema != null) { bookmark.setSchema(schema); } else { - bookmark.setSchema(""); + bookmark.setSchema(""); //$NON-NLS-1$ } - String type = props.getProperty(i + ".type"); + String type = props.getProperty(i + ".type"); //$NON-NLS-1$ if (type != null) { bookmark.setType(type); } else { - bookmark.setType(""); + bookmark.setType(""); //$NON-NLS-1$ } - String driverFile = props.getProperty(i + ".driverLocation"); + String driverFile = props.getProperty(i + ".driverLocation"); //$NON-NLS-1$ if (driverFile != null) { bookmark.setDriverFile(driverFile); } else { - bookmark.setDriverFile(""); + bookmark.setDriverFile(""); //$NON-NLS-1$ } System.out.println(bookmark.toString()); if (!bookmark.isEmpty()) { @@ -179,14 +228,14 @@ public class BookmarkContentProvider implements ITreeContentProvider { Properties props = new Properties(); for (int i = 0; i < bookmarks.size(); i++) { Bookmark b = (Bookmark) bookmarks.elementAt(i); - props.put(i + ".name", b.getName()); - props.put(i + ".username", b.getUsername()); - props.put(i + ".password", b.getPassword()); - props.put(i + ".schema", b.getSchema()); - props.put(i + ".connect", b.getConnect()); - props.put(i + ".driver", b.getDriver()); - props.put(i + ".type", b.getType()); - props.put(i + ".driverLocation", b.getDriverFile()); + props.put(i + ".name", b.getName()); //$NON-NLS-1$ + props.put(i + ".username", b.getUsername()); //$NON-NLS-1$ + props.put(i + ".password", b.getPassword()); //$NON-NLS-1$ + props.put(i + ".schema", b.getSchema()); //$NON-NLS-1$ + props.put(i + ".connect", b.getConnect()); //$NON-NLS-1$ + props.put(i + ".driver", b.getDriver()); //$NON-NLS-1$ + props.put(i + ".type", b.getType()); //$NON-NLS-1$ + props.put(i + ".driverLocation", b.getDriverFile()); //$NON-NLS-1$ } return props; }