Author: thomasobrien95
Date: Tue Feb 10 15:41:03 2009
New Revision: 2941
Added:
trunk/src/ca/sqlpower/architect/swingui/SwingUIUserPrompterFactory.java
Removed:
trunk/src/ca/sqlpower/architect/AlwaysOKUserPrompter.java
trunk/src/ca/sqlpower/architect/AlwaysOKUserPrompterFactory.java
trunk/src/ca/sqlpower/architect/UserPrompter.java
trunk/src/ca/sqlpower/architect/UserPrompterFactory.java
trunk/src/ca/sqlpower/architect/swingui/ModalDialogUserPrompter.java
Modified:
trunk/regress/ca/sqlpower/architect/ArchitectValueMaker.java
trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
trunk/regress/ca/sqlpower/architect/etl/kettle/CreateKettleJobTest.java
trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java
trunk/src/ca/sqlpower/architect/ArchitectSession.java
trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java
trunk/src/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java
trunk/src/ca/sqlpower/architect/etl/kettle/KettleJob.java
trunk/src/ca/sqlpower/architect/profile/ProfileManagerImpl.java
trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
trunk/src/ca/sqlpower/architect/swingui/messages.properties
trunk/src/ca/sqlpower/architect/swingui/messages_ko.properties
trunk/src/ca/sqlpower/architect/swingui/messages_ru.properties
Log:
Moved the UserPrompter and UserPrompterFactory into the library for
use with Wabit. The prompter has also been extended to allow defaults
to be specified for each prompter created.
Modified: trunk/regress/ca/sqlpower/architect/ArchitectValueMaker.java
==============================================================================
--- trunk/regress/ca/sqlpower/architect/ArchitectValueMaker.java
(original)
+++ trunk/regress/ca/sqlpower/architect/ArchitectValueMaker.java Tue Feb 10
15:41:03 2009
@@ -21,9 +21,9 @@
import ca.sqlpower.architect.etl.kettle.KettleRepositoryDirectoryChooser;
import ca.sqlpower.architect.etl.kettle.RootRepositoryDirectoryChooser;
-import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLColumn;
import ca.sqlpower.sqlobject.SQLIndex;
+import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.testutil.GenericNewValueMaker;
public class ArchitectValueMaker extends GenericNewValueMaker {
@@ -37,8 +37,6 @@
} else if (valueType == SQLIndex.class) {
newVal = new SQLIndex();
((SQLIndex) newVal).setName("a new index");
- } else if (valueType == UserPrompter.class) {
- newVal = new AlwaysOKUserPrompter();
} else if (valueType == KettleRepositoryDirectoryChooser.class) {
newVal = new RootRepositoryDirectoryChooser();
} else if (valueType.isAssignableFrom(Throwable.class)) {
Modified: trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
==============================================================================
--- trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
(original)
+++ trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java Tue
Feb 10 15:41:03 2009
@@ -37,9 +37,12 @@
import ca.sqlpower.architect.ddl.DDLGenerator;
import ca.sqlpower.architect.olap.OLAPRootObject;
import ca.sqlpower.architect.profile.ProfileManager;
-import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLDatabase;
+import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLObjectRoot;
+import ca.sqlpower.util.DefaultUserPrompterFactory;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
/**
* Basic implementation of ArchitectSession, for testing
@@ -47,6 +50,8 @@
public class TestingArchitectSession implements ArchitectSession {
private final ArchitectSessionContext context;
+
+ private final DefaultUserPrompterFactory defaultUPF = new
DefaultUserPrompterFactory();
/**
* Creates a new testing session within the given context.
@@ -55,13 +60,6 @@
this.context = context;
}
- /**
- * Returns an "always ok" prompter
- */
- public UserPrompter createUserPrompter(String question, String okText,
String notOkText, String cancelText) {
- return new AlwaysOKUserPrompter();
- }
-
public ArchitectSessionContext getContext() {
return context;
}
@@ -118,5 +116,15 @@
public OLAPRootObject getOLAPRootObject() {
return null;
+ }
+
+ /**
+ * Returns a default prompter
+ */
+ public UserPrompter createUserPrompter(String question, String okText,
String newText, String notOkText,
+ String cancelText, UserPromptType responseType,
UserPromptResponse defaultResponseType,
+ Object defaultResponse) {
+ return defaultUPF.createUserPrompter(question, okText, newText,
notOkText, cancelText, responseType,
+ defaultResponseType, defaultResponse);
}
}
Modified:
trunk/regress/ca/sqlpower/architect/etl/kettle/CreateKettleJobTest.java
==============================================================================
--- trunk/regress/ca/sqlpower/architect/etl/kettle/CreateKettleJobTest.java
(original)
+++ trunk/regress/ca/sqlpower/architect/etl/kettle/CreateKettleJobTest.java
Tue Feb 10 15:41:03 2009
@@ -50,10 +50,9 @@
import org.pentaho.di.trans.step.StepMeta;
import ca.sqlpower.architect.ArchitectSession;
+import ca.sqlpower.architect.ArchitectSessionContext;
import ca.sqlpower.architect.TestingArchitectSession;
import ca.sqlpower.architect.TestingArchitectSessionContext;
-import ca.sqlpower.architect.UserPrompter;
-import ca.sqlpower.architect.UserPrompter.UserPromptResponse;
import ca.sqlpower.sql.PlDotIni;
import ca.sqlpower.sql.SPDataSource;
import ca.sqlpower.sql.SPDataSourceType;
@@ -61,8 +60,45 @@
import ca.sqlpower.sqlobject.SQLColumn;
import ca.sqlpower.sqlobject.SQLDatabase;
import ca.sqlpower.sqlobject.SQLTable;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
public class CreateKettleJobTest extends TestCase {
+
+ /**
+ * This implementation of the {...@link TestingArchitectSessionContext}
is used to allow the file
+ * validator return type to be specified by the test. This is for
testing how the saving of
+ * Kettle jobs reacts if the a file is canceled or selected to not be
saved.
+ */
+ private class ArchitectSessionContextWithFileValidator extends
TestingArchitectSession {
+
+ private final UserPromptResponse fvr;
+
+ public
ArchitectSessionContextWithFileValidator(ArchitectSessionContext context,
UserPromptResponse fvr) {
+ super(context);
+ this.fvr = fvr;
+ }
+
+ @Override
+ public UserPrompter createUserPrompter(String question, String
okText, String newText, String notOkText,
+ String cancelText, UserPromptType responseType,
UserPromptResponse defaultResponseType,
+ Object defaultResponse) {
+ return new UserPrompter() {
+
+ public Object getUserSelectedResponse() {
+ if (fvr == UserPromptResponse.OK) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public UserPromptResponse promptUser(Object... formatArgs)
{
+ return fvr;
+ }
+ };
+ }
+ }
private SQLDatabase target;
private SQLTable targetTableNoSource;
@@ -324,16 +360,8 @@
List<TransMeta> transList = new ArrayList<TransMeta>();
transList.add(transMeta);
- KettleJob kettleJob = new KettleJob(new
TestingArchitectSession(new TestingArchitectSessionContext()) {
- @Override
- public UserPrompter createUserPrompter(String question, String
okText, String notOkText, String cancelText) {
- return new UserPrompter() {
- public UserPromptResponse promptUser(Object...
formatArgs) {
- return fvr;
- }
- };
- }
- }, new KettleRepositoryDirectoryChooser(){
+ KettleJob kettleJob = new KettleJob(new
ArchitectSessionContextWithFileValidator(new
TestingArchitectSessionContext(), fvr),
+ new KettleRepositoryDirectoryChooser(){
public RepositoryDirectory selectDirectory(Repository repo) {
return new RepositoryDirectory();
}
@@ -387,16 +415,8 @@
newJob.setName("jobName");
newJob.addNote(new NotePadMeta("new job note", 0, 150, 125, 125));
- KettleJob kettleJob = new KettleJob(new
TestingArchitectSession(new TestingArchitectSessionContext()) {
- @Override
- public UserPrompter createUserPrompter(String question, String
okText, String notOkText, String cancelText) {
- return new UserPrompter() {
- public UserPromptResponse promptUser(Object...
formatArgs) {
- return fvr;
- }
- };
- }
- }, new RootRepositoryDirectoryChooser());
+ KettleJob kettleJob = new KettleJob(new
ArchitectSessionContextWithFileValidator(new
TestingArchitectSessionContext(), fvr),
+ new RootRepositoryDirectoryChooser());
kettleJob.setFilePath(jobOutputFile.getPath());
kettleJob.setSavingToFile(true);
kettleJob.setJobName("jobName");
Modified:
trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java
==============================================================================
---
trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java
(original)
+++
trunk/regress/ca/sqlpower/architect/swingui/TestingArchitectSwingSession.java
Tue Feb 10 15:41:03 2009
@@ -27,12 +27,10 @@
import javax.swing.JDialog;
import javax.swing.JMenu;
-import ca.sqlpower.architect.AlwaysOKUserPrompter;
import ca.sqlpower.architect.ArchitectSession;
import ca.sqlpower.architect.ArchitectSessionImpl;
import ca.sqlpower.architect.CoreProject;
import ca.sqlpower.architect.CoreUserSettings;
-import ca.sqlpower.architect.UserPrompter;
import ca.sqlpower.architect.ddl.DDLGenerator;
import ca.sqlpower.architect.ddl.GenericDDLGenerator;
import ca.sqlpower.architect.etl.kettle.KettleJob;
@@ -43,11 +41,14 @@
import
ca.sqlpower.architect.swingui.ArchitectSwingSessionImpl.ColumnVisibility;
import ca.sqlpower.architect.swingui.olap.OLAPEditSession;
import ca.sqlpower.architect.undo.ArchitectUndoManager;
-import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLDatabase;
+import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLObjectRoot;
import ca.sqlpower.swingui.SPSwingWorker;
import ca.sqlpower.swingui.event.SessionLifecycleListener;
+import ca.sqlpower.util.DefaultUserPrompterFactory;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
/**
* Minimally functional session implementation that creates but does
@@ -263,10 +264,6 @@
return rootObject;
}
- public UserPrompter createUserPrompter(String question, String okText,
String notOkText, String cancelText) {
- return new AlwaysOKUserPrompter();
- }
-
public boolean isShowPkTag() {
return showPkTag;
}
@@ -337,6 +334,12 @@
public PrintSettings getPrintSettings() {
return printSettings;
+ }
+
+ public UserPrompter createUserPrompter(String question, String okText,
String newText, String notOkText,
+ String cancelText, UserPromptType responseType,
UserPromptResponse defaultResponseType,
+ Object defaultResponse) {
+ return new
DefaultUserPrompterFactory().createUserPrompter(question, okText, newText,
notOkText, cancelText, responseType, defaultResponseType, defaultResponse);
}
}
Modified: trunk/src/ca/sqlpower/architect/ArchitectSession.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/ArchitectSession.java (original)
+++ trunk/src/ca/sqlpower/architect/ArchitectSession.java Tue Feb 10
15:41:03 2009
@@ -22,9 +22,10 @@
import ca.sqlpower.architect.ddl.DDLGenerator;
import ca.sqlpower.architect.profile.ProfileManager;
-import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLDatabase;
+import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLObjectRoot;
+import ca.sqlpower.util.UserPrompterFactory;
public interface ArchitectSession extends UserPrompterFactory {
@@ -98,7 +99,4 @@
*/
public void setDDLGenerator(DDLGenerator generator);
- /* docs inherit from interface */
- public UserPrompter createUserPrompter(String question, String okText,
String notOkText, String cancelText);
-
}
Modified: trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java (original)
+++ trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java Tue Feb 10
15:41:03 2009
@@ -29,6 +29,10 @@
import ca.sqlpower.sqlobject.SQLDatabase;
import ca.sqlpower.sqlobject.SQLObject;
import ca.sqlpower.sqlobject.SQLObjectRoot;
+import ca.sqlpower.util.DefaultUserPrompterFactory;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompterFactory;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
/**
* The ArchitectSession class represents a single user's session with
@@ -54,7 +58,7 @@
* for the GUI will replace the default factory with one that actually
* prompts the user.
*/
- private UserPrompterFactory userPrompterFactory = new
AlwaysOKUserPrompterFactory();
+ private UserPrompterFactory userPrompterFactory = new
DefaultUserPrompterFactory();
private DDLGenerator ddlGenerator;
@@ -147,8 +151,11 @@
profileManager = manager;
}
- public UserPrompter createUserPrompter(String question, String okText,
String notOkText, String cancelText) {
- return userPrompterFactory.createUserPrompter(question, okText,
notOkText, cancelText);
+ public UserPrompter createUserPrompter(String question, String okText,
String newText, String notOkText,
+ String cancelText, UserPromptType responseType,
UserPromptResponse defaultResponseType,
+ Object defaultResponse) {
+ return userPrompterFactory.createUserPrompter(question, okText,
newText, notOkText, cancelText,
+ responseType, defaultResponseType, defaultResponse);
}
/**
Modified: trunk/src/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java
(original)
+++ trunk/src/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java Tue
Feb 10 15:41:03 2009
@@ -2,7 +2,6 @@
import java.util.List;
-import ca.sqlpower.architect.UserPrompter.UserPromptResponse;
import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLObjectRuntimeException;
import ca.sqlpower.sqlobject.SQLColumn;
@@ -10,6 +9,9 @@
import ca.sqlpower.sqlobject.SQLObject;
import ca.sqlpower.sqlobject.SQLObjectPreEvent;
import ca.sqlpower.sqlobject.SQLObjectPreEventListener;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
+import ca.sqlpower.util.UserPrompterFactory.UserPromptType;
/**
* Watches the session's root object, and reacts when SQLDatabase items
@@ -29,7 +31,8 @@
public void dbChildrenPreRemove(SQLObjectPreEvent e) {
UserPrompter up = session.createUserPrompter(
Messages.getString("SourceObjectIntegrityWatcher.removingETLLineageWarning"),
//$NON-NLS-1$
-
Messages.getString("SourceObjectIntegrityWatcher.forgetLineageOption"),
Messages.getString("SourceObjectIntegrityWatcher.keepSourceConnectionOption"),
Messages.getString("cancel")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
Messages.getString("SourceObjectIntegrityWatcher.forgetLineageOption"),
null,
Messages.getString("SourceObjectIntegrityWatcher.keepSourceConnectionOption"),
Messages.getString("cancel"),
+ UserPromptType.BOOLEAN, UserPromptResponse.OK,
Boolean.TRUE); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
for (SQLObject so : e.getChildren()) {
SQLDatabase db = (SQLDatabase) so;
try {
Modified: trunk/src/ca/sqlpower/architect/etl/kettle/KettleJob.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/etl/kettle/KettleJob.java (original)
+++ trunk/src/ca/sqlpower/architect/etl/kettle/KettleJob.java Tue Feb 10
15:41:03 2009
@@ -54,11 +54,12 @@
import ca.sqlpower.architect.ArchitectSession;
import ca.sqlpower.architect.DepthFirstSearch;
-import ca.sqlpower.architect.UserPrompter;
-import ca.sqlpower.architect.UserPrompter.UserPromptResponse;
import ca.sqlpower.architect.ddl.DDLUtils;
import ca.sqlpower.util.Monitorable;
import ca.sqlpower.util.MonitorableImpl;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
+import ca.sqlpower.util.UserPrompterFactory.UserPromptType;
import ca.sqlpower.sql.SPDataSource;
import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLColumn;
@@ -418,7 +419,7 @@
UserPrompter up = session.createUserPrompter(
"The file {0} already exists. Overwrite?",
- "Overwrite", "Don't Overwrite", "Cancel");
+ "Overwrite", null, "Don't Overwrite", "Cancel",
UserPromptType.BOOLEAN, UserPromptResponse.NOT_OK, false);
for (File f : outputs.keySet()) {
try {
logger.debug("The file to output is " + f.getPath());
@@ -500,7 +501,7 @@
try {
UserPrompter up = session.createUserPrompter(
"{0} {1} already exists in the repository.
Replace?",
- "Replace", "Don't Replace", "Cancel");
+ "Replace", null, "Don't Replace", "Cancel",
UserPromptType.BOOLEAN, UserPromptResponse.NOT_OK, false);
for (TransMeta tm: transformations) {
if (monitor.isCancelled()) {
cancel();
Modified: trunk/src/ca/sqlpower/architect/profile/ProfileManagerImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/profile/ProfileManagerImpl.java
(original)
+++ trunk/src/ca/sqlpower/architect/profile/ProfileManagerImpl.java Tue Feb
10 15:41:03 2009
@@ -32,8 +32,6 @@
import org.apache.log4j.Logger;
import ca.sqlpower.architect.ArchitectSession;
-import ca.sqlpower.architect.UserPrompter;
-import ca.sqlpower.architect.UserPrompter.UserPromptResponse;
import ca.sqlpower.architect.profile.event.ProfileChangeEvent;
import ca.sqlpower.architect.profile.event.ProfileChangeListener;
import ca.sqlpower.sqlobject.SQLObjectException;
@@ -42,6 +40,9 @@
import ca.sqlpower.sqlobject.SQLObjectPreEvent;
import ca.sqlpower.sqlobject.SQLObjectPreEventListener;
import ca.sqlpower.sqlobject.SQLTable;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
+import ca.sqlpower.util.UserPrompterFactory.UserPromptType;
/**
* The default ProfileManager implementation. Creates profiles of tables,
@@ -67,7 +68,7 @@
"\n" +
"If you proceed, the profiling information from the
database" +
" will be removed.",
- "Remove Profiles", "Keep Profiles", "Cancel");
+ "Remove Profiles", null, "Keep Profiles", "Cancel",
UserPromptType.BOOLEAN, UserPromptResponse.OK, Boolean.TRUE);
for (SQLObject so : e.getChildren()) {
SQLDatabase db = (SQLDatabase) so;
List<TableProfileResult> refs = new
ArrayList<TableProfileResult>();
Modified:
trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
Tue Feb 10 15:41:03 2009
@@ -46,7 +46,6 @@
import ca.sqlpower.architect.ArchitectSessionImpl;
import ca.sqlpower.architect.CoreProject;
import ca.sqlpower.architect.CoreUserSettings;
-import ca.sqlpower.architect.UserPrompter;
import ca.sqlpower.architect.UserSettings;
import ca.sqlpower.architect.ddl.DDLGenerator;
import ca.sqlpower.architect.etl.kettle.KettleJob;
@@ -63,18 +62,21 @@
import ca.sqlpower.architect.swingui.olap.OLAPSchemaManager;
import ca.sqlpower.architect.undo.ArchitectUndoManager;
import ca.sqlpower.sql.SPDataSource;
-import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLDatabase;
import ca.sqlpower.sqlobject.SQLObject;
import ca.sqlpower.sqlobject.SQLObjectEvent;
+import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.sqlobject.SQLObjectHierarchyListener;
import ca.sqlpower.sqlobject.SQLObjectListener;
import ca.sqlpower.sqlobject.SQLObjectRoot;
import ca.sqlpower.sqlobject.SQLObjectUtils;
+import ca.sqlpower.swingui.ModalDialogUserPrompter;
import ca.sqlpower.swingui.SPSUtils;
import ca.sqlpower.swingui.SPSwingWorker;
import ca.sqlpower.swingui.event.SessionLifecycleEvent;
import ca.sqlpower.swingui.event.SessionLifecycleListener;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
public class ArchitectSwingSessionImpl implements ArchitectSwingSession {
@@ -166,6 +168,12 @@
private final PrintSettings printSettings;
/**
+ * This user prompter factory will create all the necessary GUI user
prompts
+ * for Architect.
+ */
+ private final SwingUIUserPrompterFactory swinguiUserPrompterFactory;
+
+ /**
* This listener will listen to the SQLObject hierarchy and display
exception windows when
* an object's children are not accessible.
*/
@@ -190,6 +198,7 @@
*/
ArchitectSwingSessionImpl(final ArchitectSwingSessionContext context,
String name)
throws SQLObjectException {
+ swinguiUserPrompterFactory = new SwingUIUserPrompterFactory(null,
context.getPlDotIni());
this.isNew = true;
this.context = context;
this.delegateSession = new ArchitectSessionImpl(context, name);
@@ -283,6 +292,8 @@
frame = new ArchitectFrame(this, null);
}
+ swinguiUserPrompterFactory.setParentFrame(frame);
+
// MUST be called after constructed to set up the actions
frame.init();
frame.setVisible(true);
@@ -838,10 +849,14 @@
*
* @see ModalDialogUserPrompter
*/
- public UserPrompter createUserPrompter(String question, String okText,
String notOkText, String cancelText) {
- return new ModalDialogUserPrompter(frame, question, okText,
notOkText, cancelText);
+ public UserPrompter createUserPrompter(String question, String okText,
String newText, String notOkText,
+ String cancelText, UserPromptType responseType,
UserPromptResponse defaultResponseType,
+ Object defaultResponse) {
+ return swinguiUserPrompterFactory.createUserPrompter(question,
okText, newText, notOkText, cancelText,
+ responseType, defaultResponseType, defaultResponse);
+
}
-
+
public boolean isShowPkTag() {
return showPkTag;
}
@@ -928,6 +943,5 @@
public PrintSettings getPrintSettings() {
return printSettings;
}
-
}
Added:
trunk/src/ca/sqlpower/architect/swingui/SwingUIUserPrompterFactory.java
==============================================================================
--- (empty file)
+++ trunk/src/ca/sqlpower/architect/swingui/SwingUIUserPrompterFactory.java
Tue Feb 10 15:41:03 2009
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2009, SQL Power Group Inc.
+ *
+ * This file is part of Power*Architect.
+ *
+ * Power*Architect is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Power*Architect is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package ca.sqlpower.architect.swingui;
+
+import javax.swing.JFrame;
+
+import ca.sqlpower.sql.DataSourceCollection;
+import ca.sqlpower.sql.SPDataSource;
+import ca.sqlpower.swingui.DataSourceUserPrompter;
+import ca.sqlpower.swingui.ModalDialogUserPrompter;
+import ca.sqlpower.util.UserPrompter;
+import ca.sqlpower.util.UserPrompterFactory;
+import ca.sqlpower.util.UserPrompter.UserPromptResponse;
+
+public class SwingUIUserPrompterFactory implements UserPrompterFactory {
+
+ private JFrame owner;
+ private final DataSourceCollection dsCollection;
+
+ public SwingUIUserPrompterFactory(JFrame owner, DataSourceCollection
dsCollection) {
+ this.owner = owner;
+ this.dsCollection = dsCollection;
+ }
+
+ public UserPrompter createUserPrompter(String question, String okText,
String newText, String notOkText,
+ String cancelText, UserPromptType responseType,
UserPromptResponse defaultResponseType,
+ Object defaultResponse) {
+ switch (responseType) {
+ case BOOLEAN :
+ return new ModalDialogUserPrompter(defaultResponseType,
owner, question, okText, notOkText, cancelText);
+ case DATA_SOURCE:
+ return new DataSourceUserPrompter(defaultResponseType,
(SPDataSource) defaultResponse, owner, question, okText, newText,
notOkText, cancelText,
+ dsCollection);
+ default :
+ throw new UnsupportedOperationException("User prompt
type " + responseType + " is unknown.");
+ }
+ }
+
+ public void setParentFrame(JFrame frame) {
+ owner = frame;
+ }
+
+}
Modified: trunk/src/ca/sqlpower/architect/swingui/messages.properties
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/messages.properties (original)
+++ trunk/src/ca/sqlpower/architect/swingui/messages.properties Tue Feb 10
15:41:03 2009
@@ -199,9 +199,6 @@
KettleJobPanel.schemaNameLabel=Schema Name:
KettleJobPanel.targetDatabaseLabel=Target Database:
KettleJobPanel.transfomationsPathLabel=The transformations will be stored
in:
-ModalDialogUserPrompter.applyToAllOption=Apply to all
-ModalDialogUserPrompter.promptDialogTitle=Overwrite
-ModalDialogUserPrompter.showPromptDialogFailed=Failed to show prompting
dialog
Navigator.name=Playpen Navigator
ObjectPropertyModificationDDLComponent.UpdateProperty=Update Property
ObjectPropertyModificationDDLComponent.Change=Change {0}:
Modified: trunk/src/ca/sqlpower/architect/swingui/messages_ko.properties
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/messages_ko.properties
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/messages_ko.properties Tue Feb
10 15:41:03 2009
@@ -206,9 +206,6 @@
KettleJobPanel.schemaNameLabel=\uc2a4\ud0a4\ub9c8 \uc774\ub984:
KettleJobPanel.targetDatabaseLabel=\ub300\uc0c1
\ub370\uc774\ud130\ubca0\uc774\uc2a4:
KettleJobPanel.transfomationsPathLabel=Transformation \uc800\uc7a5
\ub300\uc0c1:
-ModalDialogUserPrompter.applyToAllOption=\ubaa8\ub450 \uc801\uc6a9
-ModalDialogUserPrompter.promptDialogTitle=\uacb9\uccd0\uc4f0\uae30
-ModalDialogUserPrompter.showPromptDialogFailed=\ucc3d\uc744
\ud45c\uc2dc\ud558\ub294\ub370 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4
Navigator.name=Playpen \ud0d0\uc0c9\uae30
ObjectPropertyModificationDDLComponent.Change=\ubcc0\uacbd {0}:
ObjectPropertyModificationDDLComponent.UpdateProperty=\uc18d\uc131
\uac31\uc2e0
Modified: trunk/src/ca/sqlpower/architect/swingui/messages_ru.properties
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/messages_ru.properties
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/messages_ru.properties Tue Feb
10 15:41:03 2009
@@ -199,9 +199,6 @@
KettleJobPanel.schemaNameLabel=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435
\u0421\u0445\u0435\u043c\u044b:
KettleJobPanel.targetDatabaseLabel=\u0426\u0435\u043b\u0435\u0432\u0430\u044f
\u0411\u0430\u0437\u0430 \u0414\u0430\u043d\u043d\u044b\u0445:
KettleJobPanel.transfomationsPathLabel=\u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
\u0431\u0443\u0434\u0435\u0442
\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u0432:
-ModalDialogUserPrompter.applyToAllOption=\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c
\u043a\u043e
\u0432\u0441\u0435\u043c\u0443
-ModalDialogUserPrompter.promptDialogTitle=\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c
-ModalDialogUserPrompter.showPromptDialogFailed=\u041d\u0435
\u0441\u043c\u043e\u0433 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c
\u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0449\u0438\u0439
\u0434\u0438\u0430\u043b\u043e\u0433
PlayPen.addTableFailed=\u041d\u0435 \u0441\u043c\u043e\u0433
\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c
\u0422\u0430\u0431\u043b\u0438\u0446\u0443.
PlayPen.bringToFrontActionName=\u0412\u044b\u0432\u0435\u0441\u0442\u0438
\u0432\u043f\u0435\u0440\u0435\u0434
PlayPen.cancelOption=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c