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