Revision: 3583
Author: [email protected]
Date: Tue Jun 1 13:03:12 2010
Log: Moved the SourceObjectIntegrityWatcher's pre-removal event into a
magic check, to prevent the user from being prompted for a db removal from
the server.
http://code.google.com/p/power-architect/source/detail?r=3583
Modified:
/trunk/src/main/java/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java
Wed Feb 25 08:58:17 2009
+++
/trunk/src/main/java/ca/sqlpower/architect/SourceObjectIntegrityWatcher.java
Tue Jun 1 13:03:12 2010
@@ -38,23 +38,27 @@
Messages.getString("cancel")); //$NON-NLS-1$ //$NON-NLS-2$
//$NON-NLS-3$
for (SQLObject so : e.getChildren()) {
SQLDatabase db = (SQLDatabase) so;
- try {
- List<SQLColumn> refs =
SQLObjectUtils.findColumnsSourcedFromDatabase(session.getTargetDatabase(),
db);
- if (!refs.isEmpty()) {
- UserPromptResponse response =
up.promptUser(refs.size(), db.getName());
- if (response == UserPromptResponse.OK) {
- // disconnect those columns' source columns
- for (SQLColumn col : refs) {
- col.setSourceColumn(null);
- }
- } else if (response == UserPromptResponse.NOT_OK) {
- e.veto();
- } else if (response == UserPromptResponse.CANCEL) {
- e.veto();
- }
- }
- } catch (SQLObjectException ex) {
- throw new SQLObjectRuntimeException(ex);
+ // Setting source columns is a magical side effect, and the
user
+ // shouldn't be prompted if the change came from the server.
+ if (db.isMagicEnabled()) {
+ try {
+ List<SQLColumn> refs =
SQLObjectUtils.findColumnsSourcedFromDatabase(session.getTargetDatabase(),
db);
+ if (!refs.isEmpty()) {
+ UserPromptResponse response =
up.promptUser(refs.size(), db.getName());
+ if (response == UserPromptResponse.OK) {
+ // disconnect those columns' source columns
+ for (SQLColumn col : refs) {
+ col.setSourceColumn(null);
+ }
+ } else if (response == UserPromptResponse.NOT_OK) {
+ e.veto();
+ } else if (response == UserPromptResponse.CANCEL) {
+ e.veto();
+ }
+ }
+ } catch (SQLObjectException ex) {
+ throw new SQLObjectRuntimeException(ex);
+ }
}
}
}