~ubuntu-branches/ubuntu/utopic/freemind/utopic

« back to all changes in this revision

Viewing changes to freemind/plugins/collaboration/database/DatabaseBasics.java

  • Committer: Bazaar Package Importer
  • Author(s): Benjamin Drung
  • Date: 2010-01-03 14:19:19 UTC
  • mfrom: (2.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20100103141919-m5az7dkicy21hqop
Tags: 0.9.0~rc6+dfsg-1ubuntu1
* Merge from Debian unstable (LP: #182927), remaining changes:
  - debian/copyright: add license/copyright for
    freemind/freemind/main/ExampleFileFilter.java

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*FreeMind - A Program for creating and viewing Mindmaps
 
2
 *Copyright (C) 2000-2008  Joerg Mueller, Daniel Polansky, Christian Foltin and others.
 
3
 *
 
4
 *See COPYING for Details
 
5
 *
 
6
 *This program is free software; you can redistribute it and/or
 
7
 *modify it under the terms of the GNU General Public License
 
8
 *as published by the Free Software Foundation; either version 2
 
9
 *of the License, or (at your option) any later version.
 
10
 *
 
11
 *This program is distributed in the hope that it will be useful,
 
12
 *but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
 *GNU General Public License for more details.
 
15
 *
 
16
 *You should have received a copy of the GNU General Public License
 
17
 *along with this program; if not, write to the Free Software
 
18
 *Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
19
 *
 
20
 * Created on 28.12.2008
 
21
 */
 
22
/* $Id: DatabaseBasics.java,v 1.1.2.4 2009/02/04 19:31:21 christianfoltin Exp $ */
 
23
package plugins.collaboration.database;
 
24
 
 
25
import java.awt.BorderLayout;
 
26
import java.awt.event.ActionEvent;
 
27
import java.awt.event.ActionListener;
 
28
import java.awt.event.WindowAdapter;
 
29
import java.awt.event.WindowEvent;
 
30
import java.beans.PropertyChangeEvent;
 
31
import java.beans.PropertyChangeListener;
 
32
import java.sql.ResultSet;
 
33
import java.util.Arrays;
 
34
import java.util.Iterator;
 
35
import java.util.List;
 
36
import java.util.Vector;
 
37
 
 
38
import javax.swing.AbstractAction;
 
39
import javax.swing.Action;
 
40
import javax.swing.JButton;
 
41
import javax.swing.JDialog;
 
42
import javax.swing.WindowConstants;
 
43
 
 
44
import com.jgoodies.forms.builder.DefaultFormBuilder;
 
45
import com.jgoodies.forms.factories.ButtonBarFactory;
 
46
import com.jgoodies.forms.layout.FormLayout;
 
47
 
 
48
import freemind.common.NumberProperty;
 
49
import freemind.common.PropertyBean;
 
50
import freemind.common.PropertyControl;
 
51
import freemind.main.Tools;
 
52
import freemind.modes.MindMapNode;
 
53
import freemind.modes.mindmapmode.MindMapController;
 
54
import freemind.modes.mindmapmode.hooks.MindMapNodeHookAdapter;
 
55
 
 
56
public class DatabaseBasics extends MindMapNodeHookAdapter  {
 
57
 
 
58
        public final static String SLAVE_HOOK_NAME = "plugins/collaboration/database/database_slave_plugin";
 
59
        public final static String SLAVE_STARTER_NAME = "plugins/collaboration/database/database_slave_starter_plugin";
 
60
        protected static final String ROW_PK = "PK";
 
61
        protected static final String ROW_ACTION = "do_action";
 
62
        protected static final String TABLE_XML_ACTIONS = "XmlActions";
 
63
        protected static final String ROW_UNDOACTION = "undo_action";
 
64
        protected static final String ROW_MAP = "map";
 
65
        private static final String PORT_PROPERTY = "plugins.collaboration.database.port";
 
66
        protected static java.util.logging.Logger logger = null;
 
67
        protected UpdateThread mUpdateThread = null;
 
68
 
 
69
        public interface ResultHandler {
 
70
                void processResults(ResultSet rs);
 
71
        }
 
72
 
 
73
        public DatabaseBasics() {
 
74
                super();
 
75
        }
 
76
 
 
77
        public void startupMapHook() {
 
78
                super.startupMapHook();
 
79
                if (logger == null) {
 
80
                        logger = freemind.main.Resources.getInstance().getLogger(
 
81
                                        this.getClass().getName());
 
82
                }
 
83
        }
 
84
 
 
85
        protected static void togglePermanentHook(MindMapController controller) {
 
86
                MindMapNode rootNode = controller.getRootNode();
 
87
                List selecteds = Arrays.asList(new MindMapNode[] { rootNode });
 
88
                controller.addHook(rootNode, selecteds, SLAVE_HOOK_NAME);
 
89
        }
 
90
        
 
91
 
 
92
        protected void setPortProperty(final NumberProperty portProperty) {
 
93
                getMindMapController().getFrame().setProperty(PORT_PROPERTY,
 
94
                                portProperty.getValue());
 
95
        }
 
96
 
 
97
        protected NumberProperty getPortProperty() {
 
98
                final NumberProperty portProperty = new NumberProperty(
 
99
                                "The port to open", "Port", 1024, 32767, 1);
 
100
                // fill values:
 
101
                portProperty.setValue(""
 
102
                                + getMindMapController().getFrame().getIntProperty(PORT_PROPERTY, 9001));
 
103
                return portProperty;
 
104
        }
 
105
 
 
106
        public static abstract class FormDialogValidator {
 
107
                /**
 
108
                 * @return true, if ok should be enabled.
 
109
                 */
 
110
                public abstract boolean isValid();
 
111
        }
 
112
 
 
113
        public static class FormDialog extends JDialog implements
 
114
                        PropertyChangeListener {
 
115
                private final MindMapController mController2;
 
116
                private boolean mSuccess = false;
 
117
                private JButton mOkButton;
 
118
                private FormDialogValidator mFormDialogValidator;
 
119
 
 
120
                public boolean isSuccess() {
 
121
                        return mSuccess;
 
122
                }
 
123
 
 
124
                public FormDialog(MindMapController pController) {
 
125
                        super(pController.getFrame().getJFrame());
 
126
                        mController2 = pController;
 
127
                }
 
128
 
 
129
                public void setUp(Vector controls) {
 
130
                        setUp(controls, new FormDialogValidator() {
 
131
 
 
132
                                public boolean isValid() {
 
133
                                        return true;
 
134
                                }
 
135
                        });
 
136
                }
 
137
 
 
138
                public void setUp(Vector controls, FormDialogValidator pValidator) {
 
139
                        mFormDialogValidator = pValidator;
 
140
                        setModal(true);
 
141
                        getContentPane().setLayout(new BorderLayout());
 
142
                        FormLayout formLayout = new FormLayout(
 
143
                                        "right:max(40dlu;p), 4dlu, 80dlu, 7dlu", "");
 
144
                        DefaultFormBuilder builder = new DefaultFormBuilder(formLayout);
 
145
                        builder.setDefaultDialogBorder();
 
146
                        for (Iterator it = controls.iterator(); it.hasNext();) {
 
147
                                PropertyControl prop = (PropertyControl) it.next();
 
148
                                prop.layout(builder, mController2);
 
149
                                PropertyBean bean = (PropertyBean) prop;
 
150
                                bean.addPropertyChangeListener(this);
 
151
                        }
 
152
                        getContentPane().add(builder.getPanel(), BorderLayout.CENTER);
 
153
                        JButton cancelButton = new JButton(getText("Cancel"));
 
154
                        cancelButton.addActionListener(new ActionListener() {
 
155
 
 
156
                                public void actionPerformed(ActionEvent arg0) {
 
157
                                        closeWindow();
 
158
                                }
 
159
 
 
160
                        });
 
161
                        mOkButton = new JButton(getText("OK"));
 
162
                        mOkButton.addActionListener(new ActionListener() {
 
163
 
 
164
                                public void actionPerformed(ActionEvent arg0) {
 
165
                                        mSuccess = true;
 
166
                                        closeWindow();
 
167
                                }
 
168
 
 
169
                        });
 
170
                        getRootPane().setDefaultButton(mOkButton);
 
171
                        getContentPane().add(
 
172
                                        ButtonBarFactory.buildOKCancelBar(cancelButton, mOkButton),
 
173
                                        BorderLayout.SOUTH);
 
174
                        setTitle("Enter Password Dialog");
 
175
                        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 
176
                        addWindowListener(new WindowAdapter() {
 
177
                                public void windowClosing(WindowEvent event) {
 
178
                                        closeWindow();
 
179
                                }
 
180
                        });
 
181
                        Action action = new AbstractAction() {
 
182
 
 
183
                                public void actionPerformed(ActionEvent arg0) {
 
184
                                        closeWindow();
 
185
                                }
 
186
                        };
 
187
                        Action actionSuccess = new AbstractAction() {
 
188
 
 
189
                                public void actionPerformed(ActionEvent arg0) {
 
190
                                        mSuccess = true;
 
191
                                        closeWindow();
 
192
                                }
 
193
                        };
 
194
                        Tools.addEscapeActionToDialog(this, action);
 
195
                        Tools.addKeyActionToDialog(this, actionSuccess, "ENTER",
 
196
                                        "ok_dialog");
 
197
 
 
198
                        pack();
 
199
                        setVisible(true);
 
200
 
 
201
                }
 
202
 
 
203
                private void closeWindow() {
 
204
                        setVisible(false);
 
205
                }
 
206
 
 
207
                String getText(String text) {
 
208
                        return text;
 
209
                }
 
210
 
 
211
                public void propertyChange(PropertyChangeEvent pEvt) {
 
212
                        logger.info("Property change " + pEvt);
 
213
                        mOkButton.setEnabled(mFormDialogValidator.isValid());
 
214
                }
 
215
 
 
216
        }
 
217
 
 
218
        public void setUpdateThread(UpdateThread pUpdateThread) {
 
219
                mUpdateThread = pUpdateThread;
 
220
        }
 
221
 
 
222
        public UpdateThread getUpdateThread() {
 
223
                return mUpdateThread;
 
224
        }
 
225
 
 
226
}
 
 
b'\\ No newline at end of file'