001: package net.sourceforge.squirrel_sql.plugins.sqlval;
002:
003: /*
004: * Copyright (C) 2002-2003 Colin Bell
005: * colbell@users.sourceforge.net
006: *
007: * This library is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation; either
010: * version 2.1 of the License, or (at your option) any later version.
011: *
012: * This library is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this library; if not, write to the Free Software
019: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: */
021: import java.awt.Component;
022: import java.awt.GridBagConstraints;
023: import java.awt.GridBagLayout;
024: import java.awt.Insets;
025:
026: import javax.swing.BorderFactory;
027: import javax.swing.JPanel;
028:
029: import net.sourceforge.squirrel_sql.fw.util.StringManager;
030: import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
031: import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
032: import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
033:
034: import net.sourceforge.squirrel_sql.client.IApplication;
035: import net.sourceforge.squirrel_sql.client.preferences.IGlobalPreferencesPanel;
036:
037: public class ValidatorGlobalPreferencesTab implements
038: IGlobalPreferencesPanel {
039: /** Logger for this class. */
040: private final static ILogger s_log = LoggerController
041: .createLogger(ValidatorGlobalPreferencesTab.class);
042:
043: /** Internationalized strings for this class. */
044: private static final StringManager s_stringMgr = StringManagerFactory
045: .getStringManager(ValidatorGlobalPreferencesTab.class);
046:
047: /** Plugin preferences. */
048: private final WebServicePreferences _prefs;
049:
050: /** Panel to display in the Global preferences dialog. */
051: private PrefsPanel _myPanel;
052:
053: /** Application API. */
054: private IApplication _app;
055:
056: /**
057: * Ctor.
058: *
059: * @param prefs Plugin preferences
060: *
061: * @throws IllegalArgumentException
062: * if <TT>LAFPlugin</TT>, or <TT>LAFRegister</TT> is <TT>null</TT>.
063: */
064: public ValidatorGlobalPreferencesTab(WebServicePreferences prefs) {
065: super ();
066: if (prefs == null) {
067: throw new IllegalArgumentException(
068: "WebServicePreferences == null");
069: }
070: _prefs = prefs;
071: }
072:
073: /**
074: * Load panel with data from plugin preferences.
075: *
076: * @param app Application API.
077: *
078: * @throws IllegalArgumentException
079: * if <TT>IApplication</TT> is <TT>null</TT>.
080: */
081: public void initialize(IApplication app) {
082: if (app == null) {
083: throw new IllegalArgumentException(
084: "Null IApplication passed");
085: }
086: _app = app;
087: ((PrefsPanel) getPanelComponent()).loadData();
088: }
089:
090: public void uninitialize(IApplication app) {
091:
092: }
093:
094: /**
095: * Return the component to be displayed in the Preferences dialog.
096: *
097: * @return the component to be displayed in the Preferences dialog.
098: */
099: public synchronized Component getPanelComponent() {
100: if (_myPanel == null) {
101: _myPanel = new PrefsPanel(_prefs);
102: }
103: return _myPanel;
104: }
105:
106: /**
107: * User has pressed OK or Apply in the dialog so save data from
108: * panel.
109: */
110: public void applyChanges() {
111: _myPanel.save();
112: }
113:
114: /**
115: * Return the title for this panel.
116: *
117: * @return the title for this panel.
118: */
119: public String getTitle() {
120: // i18n[ValidatorGlobalPreferencesTab.title=SQL Validator]
121: return s_stringMgr
122: .getString("ValidatorGlobalPreferencesTab.title");
123: }
124:
125: /**
126: * Return the hint for this panel.
127: *
128: * @return the hint for this panel.
129: */
130: public String getHint() {
131: // i18n[ValidatorGlobalPreferencesTab.hint=Preferences for SQL validation]
132: return s_stringMgr
133: .getString("ValidatorGlobalPreferencesTab.hint");
134: }
135:
136: static final class PrefsPanel extends JPanel {
137: private AppPreferencesPanel _appPrefsPnl;
138:
139: private final WebServicePreferences _prefs;
140:
141: PrefsPanel(WebServicePreferences prefs) {
142: super (new GridBagLayout());
143: _prefs = prefs;
144: createGUI(prefs);
145: }
146:
147: private void loadData() {
148: _appPrefsPnl.loadData();
149: }
150:
151: private void save() {
152: _appPrefsPnl.save();
153: }
154:
155: private void createGUI(WebServicePreferences prefs) {
156: _appPrefsPnl = new AppPreferencesPanel(prefs);
157:
158: setBorder(BorderFactory.createEmptyBorder());
159:
160: final GridBagConstraints gbc = new GridBagConstraints();
161: gbc.fill = GridBagConstraints.HORIZONTAL;
162: gbc.insets = new Insets(1, 1, 1, 1);
163: gbc.gridx = 0;
164: gbc.gridy = 0;
165: gbc.weightx = 1;
166: add(_appPrefsPnl, gbc);
167: }
168: }
169: }
|