[Jiemamy-notify:1692] commit [2886] 外部キー編集ダイアログからの操作をファサード経由に変更。

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2009年 3月 17日 (火) 03:29:38 JST


Revision: 2886
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2886
Author:   daisuke_m
Date:     2009-03-17 03:29:38 +0900 (Tue, 17 Mar 2009)

Log Message:
-----------
外部キー編集ダイアログからの操作をファサード経由に変更。

Modified Paths:
--------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/CommandProcessorImpl.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/facade/JiemamyFacadeImpl.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/foreignkey/ForeignKeyEditDialog.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java
    zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/facade/JiemamyFacade.java

Added Paths:
-----------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateForeignKeyMappingCommand.java

Removed Paths:
-------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateKeyColumnCommand.java


-------------- next part --------------
Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/CommandProcessorImpl.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/CommandProcessorImpl.java	2009-03-16 18:29:14 UTC (rev 2885)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/CommandProcessorImpl.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -44,7 +44,7 @@
 import org.jiemamy.editcommand.impl.RemoveDomainFromRootCommand;
 import org.jiemamy.editcommand.impl.RemoveEntityFromRootCommand;
 import org.jiemamy.editcommand.impl.SwapListElementCommand;
-import org.jiemamy.editcommand.impl.UpdateKeyColumnCommand;
+import org.jiemamy.editcommand.impl.UpdateForeignKeyMappingCommand;
 import org.jiemamy.exception.JiemamyRuntimeException;
 import org.jiemamy.exception.UnexpectedConditionError;
 import org.jiemamy.model.JiemamyElement;
@@ -53,7 +53,7 @@
 import org.jiemamy.model.attribute.ColumnModel;
 import org.jiemamy.model.attribute.ColumnRef;
 import org.jiemamy.model.attribute.ColumnRefImpl;
-import org.jiemamy.model.attribute.constraint.KeyConstraint;
+import org.jiemamy.model.attribute.constraint.ForeignKey;
 import org.jiemamy.model.dataset.DataSetModel;
 import org.jiemamy.model.datatype.DomainModel;
 import org.jiemamy.model.entity.EntityModel;
@@ -247,9 +247,12 @@
 	 * 
 	 * @param command コマンド
 	 */
-	public void process(UpdateKeyColumnCommand command) {
-		KeyConstraint keyConstraint = command.getKeyConstraint();
-		keyConstraint.getKeyColumns().set(command.getIndex(), command.getNewRef());
+	public void process(UpdateForeignKeyMappingCommand command) {
+		ForeignKey foreignKey = command.getForeignKey();
+		foreignKey.getKeyColumns().clear();
+		foreignKey.getKeyColumns().addAll(command.getNewKeyColumns());
+		foreignKey.getReferenceColumns().clear();
+		foreignKey.getReferenceColumns().addAll(command.getNewReferenceColumns());
 		
 		// 面倒だけど、全部のprocessメソッドに入れる(Interceptorで手を抜きたい)。
 		eventBroker.fireCommandProcessed(command);

Copied: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateForeignKeyMappingCommand.java (from rev 2880, artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateKeyColumnCommand.java)
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateForeignKeyMappingCommand.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateForeignKeyMappingCommand.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/03/16
+ *
+ * This file is part of Jiemamy.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ */
+package org.jiemamy.editcommand.impl;
+
+import java.util.List;
+
+import org.jiemamy.editcommand.Command;
+import org.jiemamy.model.JiemamyElement;
+import org.jiemamy.model.attribute.ColumnRef;
+import org.jiemamy.model.attribute.constraint.ForeignKey;
+import org.jiemamy.utils.CollectionsUtil;
+
+/**
+ * リスト要素の入れ替えを行うEDITコマンドクラス。
+ * 
+ * @author daisuke
+ */
+public class UpdateForeignKeyMappingCommand extends AbstractCommand {
+	
+	private final ForeignKey foreignKey;
+	
+	private final List<ColumnRef> newKeyColumns;
+	
+	private final List<ColumnRef> newReferenceColumns;
+	
+	private final List<ColumnRef> oldKeyColumns;
+	
+	private final List<ColumnRef> oldReferenceColumns;
+	
+
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param foreignKey
+	 * @param newKeyColumns
+	 * @param newReferenceColumns
+	 */
+	public UpdateForeignKeyMappingCommand(ForeignKey foreignKey, List<ColumnRef> newKeyColumns,
+			List<ColumnRef> newReferenceColumns) {
+		this.foreignKey = foreignKey;
+		this.newKeyColumns = newKeyColumns;
+		this.newReferenceColumns = newReferenceColumns;
+		oldKeyColumns = CollectionsUtil.newArrayList(foreignKey.getKeyColumns());
+		oldReferenceColumns = CollectionsUtil.newArrayList(foreignKey.getReferenceColumns());
+	}
+	
+	/**
+	 * TODO for daisuke
+	 * 
+	 * @return
+	 */
+	public ForeignKey getForeignKey() {
+		return foreignKey;
+	}
+	
+	public Command getNegateCommand() {
+		return new UpdateForeignKeyMappingCommand(foreignKey, oldKeyColumns, oldReferenceColumns);
+	}
+	
+	/**
+	 * TODO for daisuke
+	 * @return the newKeyColumns
+	 */
+	public List<ColumnRef> getNewKeyColumns() {
+		return newKeyColumns;
+	}
+	
+	/**
+	 * TODO for daisuke
+	 * @return the newReferenceColumns
+	 */
+	public List<ColumnRef> getNewReferenceColumns() {
+		return newReferenceColumns;
+	}
+	
+	public JiemamyElement getTarget() {
+		return foreignKey;
+	}
+}


Property changes on: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateForeignKeyMappingCommand.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Deleted: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateKeyColumnCommand.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateKeyColumnCommand.java	2009-03-16 18:29:14 UTC (rev 2885)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/editcommand/impl/UpdateKeyColumnCommand.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -1,102 +0,0 @@
-/*
- * Copyright 2007-2009 Jiemamy Project and the Others.
- * Created on 2009/03/16
- *
- * This file is part of Jiemamy.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- * either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-package org.jiemamy.editcommand.impl;
-
-import org.jiemamy.editcommand.Command;
-import org.jiemamy.model.JiemamyElement;
-import org.jiemamy.model.attribute.ColumnModel;
-import org.jiemamy.model.attribute.ColumnRef;
-import org.jiemamy.model.attribute.constraint.KeyConstraint;
-
-/**
- * リスト要素の入れ替えを行うEDITコマンドクラス。
- * 
- * @author daisuke
- */
-public class UpdateKeyColumnCommand extends AbstractCommand {
-	
-	private final KeyConstraint keyConstraint;
-	
-	private final int index;
-	
-	private final ColumnRef newRef;
-	
-	private final ColumnRef oldRef;
-	
-
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param keyConstraint
-	 * @param index
-	 * @param columnModel
-	 */
-	public UpdateKeyColumnCommand(KeyConstraint keyConstraint, int index, ColumnModel columnModel) {
-		this.keyConstraint = keyConstraint;
-		this.index = index;
-		newRef = keyConstraint.getJiemamy().getFactory().newReference(columnModel);
-		oldRef = keyConstraint.getKeyColumns().get(index);
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param keyConstraint
-	 * @param index
-	 * @param newRef
-	 */
-	public UpdateKeyColumnCommand(KeyConstraint keyConstraint, int index, ColumnRef newRef) {
-		this.keyConstraint = keyConstraint;
-		this.index = index;
-		this.newRef = newRef;
-		oldRef = keyConstraint.getKeyColumns().get(index);
-	}
-	
-	/**
-	 * TODO for daisuke
-	 * @return the index
-	 */
-	public int getIndex() {
-		return index;
-	}
-	
-	/**
-	 * TODO for daisuke
-	 * @return the keyConstraint
-	 */
-	public KeyConstraint getKeyConstraint() {
-		return keyConstraint;
-	}
-	
-	public Command getNegateCommand() {
-		return new UpdateKeyColumnCommand(keyConstraint, index, oldRef);
-	}
-	
-	/**
-	 * TODO for daisuke
-	 * @return the newRef
-	 */
-	public ColumnRef getNewRef() {
-		return newRef;
-	}
-	
-	public JiemamyElement getTarget() {
-		return keyConstraint;
-	}
-}

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/facade/JiemamyFacadeImpl.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/facade/JiemamyFacadeImpl.java	2009-03-16 18:29:14 UTC (rev 2885)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/facade/JiemamyFacadeImpl.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -44,10 +44,11 @@
 import org.jiemamy.editcommand.impl.RemoveIndexColumnCommand;
 import org.jiemamy.editcommand.impl.RemoveIndexCommand;
 import org.jiemamy.editcommand.impl.SwapListElementCommand;
-import org.jiemamy.editcommand.impl.UpdateKeyColumnCommand;
+import org.jiemamy.editcommand.impl.UpdateForeignKeyMappingCommand;
 import org.jiemamy.model.JiemamyElement;
 import org.jiemamy.model.attribute.AttributeModel;
 import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.attribute.ColumnRef;
 import org.jiemamy.model.attribute.constraint.ForeignKey;
 import org.jiemamy.model.attribute.constraint.KeyConstraint;
 import org.jiemamy.model.dataset.DataSetModel;
@@ -287,8 +288,11 @@
 		undoStack.push(command.getNegateCommand());
 	}
 	
-	public void updateKeyColumn(ForeignKey foreignKey, int index, ColumnModel columnModel) {
-		Command command = new UpdateKeyColumnCommand(foreignKey, index, columnModel);
+	public void updateForeignKeyMapping(ForeignKey foreignKey, List<ColumnRef> keyColumns,
+			List<ColumnRef> referenceColumns) {
+		Validate.isTrue(keyColumns.size() == referenceColumns.size());
+		
+		Command command = new UpdateForeignKeyMappingCommand(foreignKey, keyColumns, referenceColumns);
 		command.execute(getCommandProcessor());
 		undoStack.push(command.getNegateCommand());
 	}

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/foreignkey/ForeignKeyEditDialog.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/foreignkey/ForeignKeyEditDialog.java	2009-03-16 18:29:14 UTC (rev 2885)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/foreignkey/ForeignKeyEditDialog.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -187,7 +187,11 @@
 	
 	@Override
 	protected boolean canExecuteOk() {
-		// TODO Auto-generated method stub
+		for (Combo combo : keyColumnCombos) {
+			if (combo.getSelectionIndex() == -1) {
+				return false;
+			}
+		}
 		return super.canExecuteOk();
 	}
 	
@@ -350,24 +354,19 @@
 		
 		int selectionIndex = cmbReferenceKey.getSelectionIndex();
 		LocalKeyConstraint referenceKeyConstraint = referenceKeys.get(selectionIndex);
-		// TODO facade経由で操作
-		foreignKey.getReferenceColumns().clear();
+		List<ColumnRef> newReferenceColumns = CollectionsUtil.newArrayList();
 		for (ColumnRef referenceColumnRef : referenceKeyConstraint.getKeyColumns()) {
-			// TODO facade経由で操作
-			foreignKey.getReferenceColumns().add(new ColumnRefImpl(jiemamy, referenceColumnRef.getReferenceId()));
+			newReferenceColumns.add(new ColumnRefImpl(jiemamy, referenceColumnRef.getReferenceId()));
 		}
 		
-		// TODO facade経由で操作
-		foreignKey.getKeyColumns().clear();
+		List<ColumnRef> newKeyColumns = CollectionsUtil.newArrayList();
 		for (int i = 0; i < keyColumnCombos.size(); i++) {
 			int index = keyColumnCombos.get(i).getSelectionIndex();
-			if (index == -1) {
-				continue;
-			}
 			ColumnModel keyColumn = sourceColumns.get(index);
-			// TODO facade経由で操作
+			newKeyColumns.add(jiemamy.getFactory().newReference(keyColumn));
 			foreignKey.getKeyColumns().add(new ColumnRefImpl(jiemamy, keyColumn.getId()));
 		}
+		jiemamyFacade.updateForeignKeyMapping(getTargetModel(), newKeyColumns, newReferenceColumns);
 		
 		return true;
 	}

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java	2009-03-16 18:29:14 UTC (rev 2885)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -134,31 +134,12 @@
 
 		public void commandExecuted(Command command) {
 			logger.debug(LogMarker.LIFECYCLE, "LocalKeyConstraintContentProvider: commandExecuted");
-//			if (evt.getPropertyName().equals(TableModel.P_ENTITY_TABLE_UNIQUES)) {
 			localKeyEditor.refreshTable();
-//			} else if (evt.getPropertyName().equals(CheckConstraint.P_UNIQUE_NAME)) {
-//				uniqueEditArea.refreshTable();
-//			} else if (evt.getPropertyName().equals(CheckConstraint.P_UNIQUE_DEFINITION)) {
-//				uniqueEditArea.refreshTable();
-//			} else if (evt.getSource() instanceof UniqueConstraint) {
-//				uniqueEditArea.refreshTable();
-//				if (evt.getPropertyName().equals(UniqueConstraint.P_CREATE)) {
-//					// nothing to do
-//				} else if (evt.getPropertyName().equals(UniqueConstraint.P_DELETE)) {
-//					((AbstractModel) evt.getSource()).removePropertyChangeListener(this);
-//				} else if (evt.getPropertyName().equals(UniqueConstraint.P_REVERT)) {
-//					((AbstractModel) evt.getSource()).addPropertyChangeListener(this);
-//				}
-//			}
 		}
 		
 		@Override
 		public void dispose() {
 			logger.debug(LogMarker.LIFECYCLE, "LocalKeyConstraintContentProvider: dispose");
-//			tableModel.removePropertyChangeListener(this);
-//			for (UniqueConstraint uniqueKey : tableModel.getUniques()) {
-//				((AbstractModel) uniqueKey).removePropertyChangeListener(this);
-//			}
 			super.dispose();
 		}
 		
@@ -174,19 +155,6 @@
 			
 			this.viewer = viewer;
 			
-//			if (oldInput != null) {
-//				tableModel.removePropertyChangeListener(this);
-//				for (UniqueKey uniqueKey : tableModel.getUniques()) {
-//					((AbstractModel) uniqueKey).removePropertyChangeListener(this);
-//				}
-//			}
-//			if (newInput != null) {
-//				tableModel.addPropertyChangeListener(this);
-//				for (UniqueKey uniqueKey : tableModel.getUniques()) {
-//					((AbstractModel) uniqueKey).addPropertyChangeListener(this);
-//				}
-//			}
-			
 			super.inputChanged(viewer, oldInput, newInput);
 		}
 		

Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/facade/JiemamyFacade.java
===================================================================
--- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/facade/JiemamyFacade.java	2009-03-16 18:29:14 UTC (rev 2885)
+++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/facade/JiemamyFacade.java	2009-03-16 18:29:38 UTC (rev 2886)
@@ -25,6 +25,7 @@
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.attribute.AttributeModel;
 import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.attribute.ColumnRef;
 import org.jiemamy.model.attribute.constraint.ForeignKey;
 import org.jiemamy.model.attribute.constraint.KeyConstraint;
 import org.jiemamy.model.dataset.DataSetModel;
@@ -203,5 +204,5 @@
 	 */
 	void swapListElement(JiemamyElement targetElement, List<?> list, int subjectIndex, int objectIndex);
 	
-	void updateKeyColumn(ForeignKey foreignKey, int index, ColumnModel columnModel);
+	void updateForeignKeyMapping(ForeignKey foreignKey, List<ColumnRef> keyColumns, List<ColumnRef> referenceColumns);
 }



Jiemamy-notify メーリングリストの案内
Zurück zum Archiv-Index