View Javadoc
1 package net.plugin.sql; 2 3 /* 4 * Created by IntelliJ IDEA. 5 * User: birchfield 6 * Date: Aug 17, 2002 7 * Time: 10:53:08 PM 8 * To change template for new class use 9 * Code Style | Class Templates options (Tools | IDE Options). 10 */ 11 12 import com.intellij.openapi.components.ProjectComponent; 13 import com.intellij.openapi.actionSystem.*; 14 import com.intellij.openapi.project.Project; 15 import com.intellij.openapi.util.JDOMExternalizable; 16 import com.intellij.openapi.util.InvalidDataException; 17 import com.intellij.openapi.util.WriteExternalException; 18 import com.intellij.openapi.wm.ToolWindowManager; 19 import com.intellij.openapi.wm.ToolWindowAnchor; 20 import com.intellij.openapi.wm.ToolWindow; 21 22 import javax.swing.*; 23 24 import net.plugin.sql.gui.MainSQLView; 25 import net.plugin.sql.util.*; 26 import net.plugin.sql.beans.DataSource; 27 28 import java.util.*; 29 import java.util.List; 30 import java.awt.BorderLayout; 31 32 import org.jdom.Element; 33 34 public class SQLPlugin implements ProjectComponent, JDOMExternalizable { 35 36 37 private Project project = null; 38 private MainSQLView view = null; 39 40 public SQLPlugin(Project project) { 41 this.project = project; 42 ProjectHolder.getInstance().setProject(project); 43 } 44 45 46 public String getComponentName() { 47 return SQLPlugin.class.getName(); 48 } 49 50 public void initComponent() { 51 System.out.println("net.plugin.sql.SQLPlugin.initComponent"); 52 // ActionManager manager = ActionManager.getInstance(); 53 // DefaultActionGroup editorGroup = (DefaultActionGroup) manager.getAction("EditorPopupMenu"); 54 // editorGroup.add(new SQLConnectionCreatorAction()); 55 } 56 57 private void initToolWindow() { 58 System.out.println("net.plugin.sql.SQLPlugin.initToolWindow"); 59 ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(project); 60 ActionGroup actionGroup = (ActionGroup) ActionManager.getInstance().getAction(Constants.TOOLBAR_WINDOW_ID); 61 // TODO: find out what the first parameter means and replace it with something meaningfull 62 ActionToolbar toolBar = ActionManager.getInstance().createActionToolbar("DummyPlace", actionGroup, true); 63 64 view = new MainSQLView(project); 65 view.add(toolBar.getComponent(), BorderLayout.NORTH); 66 ToolWindow myToolWindow = toolWindowManager.registerToolWindow(Constants.TOOL_WINDOW_ID, view, ToolWindowAnchor.RIGHT); 67 // myToolWindow.setTitle("Available Servers"); 68 } 69 70 public MainSQLView getMainView() { 71 return view; 72 } 73 74 75 private void disposeToolWindow() { 76 try { 77 ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(project); 78 toolWindowManager.unregisterToolWindow(Constants.TOOL_WINDOW_ID); 79 } catch (Exception e) { 80 //ignore... 81 } 82 } 83 84 public void disposeComponent() { 85 disposeToolWindow(); 86 } 87 88 public void projectOpened() { 89 System.out.println("net.plugin.sql.SQLPlugin.projectOpened"); 90 initToolWindow(); 91 } 92 93 public void projectClosed() { 94 System.out.println("net.plugin.sql.SQLPlugin.projectClosed"); 95 disposeToolWindow(); 96 } 97 98 public void readExternal(org.jdom.Element element) throws InvalidDataException { 99 System.out.println("SQLPlugin.readExternal"); 100 List datasources = element.getChildren("datasource"); 101 for (Iterator iterator = datasources.iterator(); iterator.hasNext();) { 102 Element elem = (Element) iterator.next(); 103 //TODO: find out why readExternal is called twice in a row. 104 if (DataSourceManager.getInstance(project).getDataSource(elem.getAttributeValue("name")) == null) 105 { 106 //create new datasource 107 DataSource dataSource = new DataSource(); 108 dataSource.setName(elem.getAttributeValue("name")); 109 dataSource.setDriver(elem.getAttributeValue("driver")); 110 dataSource.setUrl(elem.getAttributeValue("url")); 111 dataSource.setUser(elem.getAttributeValue("user")); 112 dataSource.setPassword(elem.getAttributeValue("password")); 113 dataSource.setLastScheme(elem.getAttributeValue("lastscheme")); 114 try { 115 System.out.println("found dataSource = " + dataSource); 116 DataSourceManager.getInstance(project).addDataSource(dataSource); 117 } catch (DataSourceException e) { 118 JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 119 } 120 } 121 else 122 { 123 System.out.println("dataSource " + elem.getAttributeValue("name") + " does already exist"); 124 } 125 } 126 List queries = element.getChildren("query"); 127 for (Iterator iterator = queries.iterator(); iterator.hasNext();) { 128 Element qElement = (Element) iterator.next(); 129 QueryManager.getInstance().addQuery(qElement.getAttributeValue("sql")); 130 } 131 } 132 133 public void writeExternal(org.jdom.Element element) throws WriteExternalException { 134 System.out.println("SQLPlugin.writeExternal"); 135 Collection dataSources = DataSourceManager.getInstance(project).getDataSources(); 136 for (Iterator iterator = dataSources.iterator(); iterator.hasNext();) { 137 DataSource dataSource = (DataSource) iterator.next(); 138 System.out.println("writing dataSource = " + dataSource); 139 Element elem = new Element("datasource"); 140 elem.setAttribute("name", dataSource.getName()); 141 elem.setAttribute("driver", dataSource.getDriver()); 142 elem.setAttribute("url", dataSource.getUrl()); 143 elem.setAttribute("user", dataSource.getUser()); 144 elem.setAttribute("password", dataSource.getPassword()); 145 if (dataSource.getLastScheme() != null) 146 { 147 elem.setAttribute("lastscheme", dataSource.getLastScheme()); 148 } 149 element.addContent(elem); 150 } 151 Collection queries = QueryManager.getInstance().getQueries(); 152 for (Iterator iterator = queries.iterator(); iterator.hasNext();) { 153 String s = (String) iterator.next(); 154 Element qElem = new Element("query"); 155 qElem.setAttribute("sql", s); 156 element.addContent(qElem); 157 } 158 } 159 160 161 }

This page was automatically generated by Maven