001: package org.apache.ojb.tools.mapping.reversedb.gui.actions;
002:
003: /* Copyright 2002-2005 The Apache Software Foundation
004: *
005: * Licensed under the Apache License, Version 2.0 (the "License");
006: * you may not use this file except in compliance with the License.
007: * You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: import javax.swing.JOptionPane;
019:
020: /**
021: *
022: * @author Florian Bruckner
023: * @version $Revision: 1.1.2.1 $
024: */
025: public class GenerateJavaClassesAction extends
026: javax.swing.AbstractAction {
027: org.apache.ojb.tools.mapping.reversedb.gui.JFrmMainFrame mainFrame;
028:
029: /** Creates a new instance of GenerateJavaClassesAction */
030: public GenerateJavaClassesAction(
031: org.apache.ojb.tools.mapping.reversedb.gui.JFrmMainFrame pmainFrame) {
032: super ();
033: mainFrame = pmainFrame;
034: this .putValue(NAME, "Generate Java");
035: }
036:
037: public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
038: // 1. Open a Filechooser dialog to get the directory for the java Files
039: javax.swing.JFileChooser fileChooser = new javax.swing.JFileChooser();
040: fileChooser
041: .setDialogTitle("Select Directory for Java generation");
042: fileChooser
043: .setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
044: int rc = fileChooser.showSaveDialog(mainFrame);
045: if (rc == javax.swing.JFileChooser.APPROVE_OPTION) {
046: java.io.File f = fileChooser.getSelectedFile();
047: try {
048: if (!f.isDirectory()) {
049: JOptionPane.showMessageDialog(mainFrame,
050: "Selected item is not a directory",
051: "Generate Java", JOptionPane.ERROR_MESSAGE);
052: return;
053: }
054: if (f.canWrite()) {
055: mainFrame.getDBMeta().generateJava(f, "", "");
056: } else {
057: JOptionPane.showMessageDialog(mainFrame,
058: "Cannot write to selected directory",
059: "Generate Java", JOptionPane.ERROR_MESSAGE);
060: return;
061: }
062: } catch (java.io.FileNotFoundException fnfe) {
063: fnfe.printStackTrace();
064: JOptionPane.showMessageDialog(mainFrame,
065: "File not found:\n" + fnfe.getMessage(),
066: "Generate Java", JOptionPane.ERROR_MESSAGE);
067: } catch (java.io.IOException ioex) {
068: ioex.printStackTrace();
069: JOptionPane.showMessageDialog(mainFrame, "I/O Error:\n"
070: + ioex.getMessage(), "Generate Java",
071: JOptionPane.ERROR_MESSAGE);
072: } catch (Throwable t) {
073: t.printStackTrace();
074: JOptionPane.showMessageDialog(mainFrame, "Error:\n"
075: + t.getMessage(), "Generate Java",
076: JOptionPane.ERROR_MESSAGE);
077: }
078: }
079: }
080:
081: }
082:
083: /***************************** Changelog *****************************
084: // $Log: GenerateJavaClassesAction.java,v $
085: // Revision 1.1.2.1 2005/12/21 22:32:06 tomdz
086: // Updated license
087: //
088: // Revision 1.1 2004/05/05 16:38:25 arminw
089: // fix fault
090: // wrong package structure used:
091: // org.apache.ojb.tools.reversdb
092: // org.apache.ojb.tools.reversdb2
093: //
094: // instead of
095: // org.apache.ojb.tools.mapping.reversdb
096: // org.apache.ojb.tools.mapping.reversdb2
097: //
098: // Revision 1.1 2004/05/04 13:44:59 arminw
099: // move reverseDB stuff
100: //
101: // Revision 1.6 2004/04/04 23:53:42 brianm
102: // Fixed initial copyright dates to match cvs repository
103: //
104: // Revision 1.5 2004/03/11 18:16:23 brianm
105: // ASL 2.0
106: //
107: // Revision 1.4 2003/06/21 10:39:13 florianbruckner
108: // improve error reporting; use writeXML(PrintWriter) instead of getXML()
109: //
110: // Revision 1.3 2002/11/08 13:47:38 brj
111: // corrected some compiler warnings
112: //
113: // Revision 1.2 2002/06/17 19:34:34 jvanzyl
114: // Correcting all the package references.
115: // PR:
116: // Obtained from:
117: // Submitted by:
118: // Reviewed by:
119: //
120: // Revision 1.1.1.1 2002/06/17 18:16:54 jvanzyl
121: // Initial OJB import
122: //
123: // Revision 1.2 2002/05/16 11:47:09 florianbruckner
124: // fix CR/LF issue, change license to ASL
125: //
126: // Revision 1.1 2002/04/18 11:44:16 mpoeschl
127: //
128: // move files to new location
129: //
130: // Revision 1.2 2002/04/07 09:05:17 thma
131: // *** empty log message ***
132: //
133: // Revision 1.1.1.1 2002/02/20 13:35:25 Administrator
134: // initial import
135: //
136: /***************************** Changelog *****************************/
|