[Jiemamy-notify:1711] commit [2900] テーブル編集ダイアログにて、名前重複のバリデーション追加。 /

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 3月 18日 (水) 01:46:44 JST


Revision: 2900
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2900
Author:   daisuke_m
Date:     2009-03-18 01:46:44 +0900 (Wed, 18 Mar 2009)

Log Message:
-----------
テーブル編集ダイアログにて、名前重複のバリデーション追加。 /
javadoc

Modified Paths:
--------------
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/FitNodeConstraintAction.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/DiagramEditorPaletteFactory.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialog.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialogTableTab.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialog.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/JiemamyEditDialog.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/tab/AbstractTab.java


-------------- next part --------------
Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/FitNodeConstraintAction.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/FitNodeConstraintAction.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/FitNodeConstraintAction.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -33,7 +33,7 @@
 /**
  * ノードのサイズをフィット(デフォルトサイズに変更)させるアクション。
  * 
- * <p>TODO GEFコマンド化し、undo可能にする。</p>
+ * TODO GEFコマンド化し、undo可能にする。
  * 
  * @author daisuke
  */

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/DiagramEditorPaletteFactory.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/DiagramEditorPaletteFactory.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/DiagramEditorPaletteFactory.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -115,8 +115,7 @@
 		PaletteGroup toolGroup = new PaletteGroup("palette.tools"); // RESOURCE
 		
 		// Add a selection tool to the group
-		ToolEntry tool = new PanningSelectionToolEntry(); // THINK new
-		// SelectionToolEntry() とどう違う?
+		ToolEntry tool = new PanningSelectionToolEntry(); // THINK new SelectionToolEntry() とどう違う?
 		toolGroup.add(tool);
 		palette.setDefaultEntry(tool);
 		

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialog.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialog.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialog.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -278,7 +278,9 @@
 	
 
 	/**
-	 * TODO for daisuke
+	 * タブを追加・削除するメニューを表示するリスナ。
+	 * 
+	 * TODO 同じテーブルに対するタブを複数作られてしまう心配は?
 	 *  
 	 * @author daisuke
 	 */

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialogTableTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialogTableTab.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/DataSetEditDialogTableTab.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -118,17 +118,9 @@
 	
 	@Override
 	public boolean isTabComplete() {
-		// TODO Auto-generated method stub
 		return true;
 	}
 	
-	/**
-	 * TODO for daisuke
-	 * 
-	 * @param factory
-	 * @param table
-	 * @param records
-	 */
 	private void refreshTable(JiemamyFactory factory, final Table table, List<RecordModel> records) {
 		for (TableItem item : table.getItems()) {
 			item.dispose();

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -107,7 +107,6 @@
 	
 	@Override
 	public boolean isTabComplete() {
-		// TODO Auto-generated method stub
 		return true;
 	}
 	

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -544,6 +544,15 @@
 		
 		@Override
 		protected void enableEditorControls(int index) {
+			txtDomainName.setEnabled(true);
+			cmbColumnType.setEnabled(true);
+			txtColumnSize.setEnabled(true);
+			txtDescription.setEnabled(true);
+			chkIsNotNull.setEnabled(true);
+			txtCheckName.setEnabled(true);
+			txtCheckExpression.setEnabled(true);
+			
+			// 現在値の設定
 			DomainModel domainModel = domains.get(index);
 			DataType dataType = domainModel.getDataType();
 			
@@ -556,17 +565,6 @@
 			CheckConstraint checkConstraint = domainModel.getCheckConstraint();
 			txtCheckName.setText(StringUtils.defaultIfEmpty(checkConstraint.getName(), ""));
 			txtCheckExpression.setText(checkConstraint.getExpression());
-			
-			txtDomainName.setEnabled(true);
-			cmbColumnType.setEnabled(true);
-			txtColumnSize.setEnabled(true);
-			txtDescription.setEnabled(true);
-			chkIsNotNull.setEnabled(true);
-			txtCheckName.setEnabled(true);
-			txtCheckExpression.setEnabled(true);
-			
-			// 現在値の設定
-			// UNDONE
 		}
 		
 		@Override

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialog.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialog.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialog.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -24,6 +24,7 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.Validate;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.ImageRegistry;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -101,43 +102,6 @@
 	}
 	
 	@Override
-	protected boolean canExecuteOk() {
-		if (StringUtils.isEmpty(txtName.getText())) {
-			return false;
-		}
-		TableModel tableModel = getTargetModel();
-		RootModel rootModel = tableModel.getJiemamy().getFactory().getRootModel();
-		
-		Set<EntityModel> entities = rootModel.getEntities();
-		Set<String> entityNames = new HashSet<String>(entities.size());
-		for (EntityModel entityModel : entities) {
-			if (entityModel != tableModel) {
-				entityNames.add(entityModel.getName());
-			}
-		}
-		
-		List<ColumnModel> columns = TableUtil.getColumns(tableModel);
-		Set<String> columnNames = new HashSet<String>(columns.size());
-		for (ColumnModel columnModel : columns) {
-			columnNames.add(columnModel.getName());
-		}
-		
-		boolean entityCheckOk = true;
-		boolean columnCheckOk = true;
-		
-		// TODO OKを押したタイミングで問い合わせ
-//		if (entityNames.contains(txtName.getText())) {
-//			entityCheckOk = MessageDialog.openQuestion(getParentShell(), "Confirm", "エンティティ名が重複しますが、よろしいですか?"); // RESOURCE
-//		}
-//		
-//		if (columnNames.size() != columns.size()) {
-//			columnCheckOk = MessageDialog.openQuestion(getParentShell(), "Confirm", "カラム名が重複しますが、よろしいですか?"); // RESOURCE
-//		}
-		
-		return entityCheckOk && columnCheckOk && super.canExecuteOk();
-	}
-	
-	@Override
 	protected void constrainShellSize() {
 		Shell shell = getShell();
 		shell.pack();
@@ -252,8 +216,41 @@
 	
 	@Override
 	protected boolean performOk() {
+		if (StringUtils.isEmpty(txtName.getText())) {
+			return false;
+		}
+		
 		TableModel tableModel = getTargetModel();
+		RootModel rootModel = tableModel.getJiemamy().getFactory().getRootModel();
 		
+		Set<EntityModel> entities = rootModel.getEntities();
+		Set<String> entityNames = new HashSet<String>(entities.size());
+		for (EntityModel entityModel : entities) {
+			if (entityModel != tableModel) {
+				entityNames.add(entityModel.getName());
+			}
+		}
+		
+		List<ColumnModel> columns = TableUtil.getColumns(tableModel);
+		Set<String> columnNames = new HashSet<String>(columns.size());
+		for (ColumnModel columnModel : columns) {
+			columnNames.add(columnModel.getName());
+		}
+		
+		if (entityNames.contains(txtName.getText())) {
+			boolean entityCheckOk = MessageDialog.openQuestion(getParentShell(), "Confirm", "エンティティ名が重複しますが、よろしいですか?"); // RESOURCE
+			if (entityCheckOk == false) {
+				return false;
+			}
+		}
+		
+		if (columnNames.size() != columns.size()) {
+			boolean columnCheckOk = MessageDialog.openQuestion(getParentShell(), "Confirm", "カラム名が重複しますが、よろしいですか?"); // RESOURCE
+			if (columnCheckOk == false) {
+				return false;
+			}
+		}
+		
 		String name = JiemamyPropertyUtil.careNull(txtName.getText(), false);
 		jiemamyFacade.changeModelProperty(tableModel, EntityProperty.name, name);
 		

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -778,7 +778,6 @@
 					} catch (IllegalArgumentException e) {
 						// ignore
 					}
-					// FIXME BUG ここでremoveされない?
 				} else {
 					if (primaryKey == null) {
 						primaryKey = factory.newModel(PrimaryKey.class);

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -476,13 +476,14 @@
 				IndexColumnModel indexColumnModel =
 						tableModel.getIndexes().get(indexIndex).getIndexColumns().get(index);
 				// UNDONE indexColumnModel.getColumn(). addとかremoveとか
+				
+				SortOrder sortOrder = null;
 				if (radSortAsc.getSelection()) {
-					jiemamyFacade.changeModelProperty(indexColumnModel, IndexColumnProperty.sortOrder, SortOrder.ASC);
+					sortOrder = SortOrder.ASC;
 				} else if (radSortDesc.getSelection()) {
-					jiemamyFacade.changeModelProperty(indexColumnModel, IndexColumnProperty.sortOrder, SortOrder.DESC);
-				} else {
-					jiemamyFacade.changeModelProperty(indexColumnModel, IndexColumnProperty.sortOrder, null);
+					sortOrder = SortOrder.DESC;
 				}
+				jiemamyFacade.changeModelProperty(indexColumnModel, IndexColumnProperty.sortOrder, sortOrder);
 			}
 		}
 	}
@@ -494,26 +495,11 @@
 		
 
 		public void commandExecuted(Command command) {
-//			if (evt.getPropertyName().equals(TableModel.P_ENTITY_TABLE_INDEXES)) {
 			indexesTableEditor.refreshTable(); // インデックスの変更を反映させる。
-//			} else if (evt.getSource() instanceof DefinitionModel) {
-//				indexesEditArea.refreshTable(); // インデックスの変更を反映させる。
-//				if (evt.getPropertyName().equals(IndexModel.P_CREATE)) {
-//					// nothing to do
-//				} else if (evt.getPropertyName().equals(IndexModel.P_DELETE)) {
-//					((JiemamyElement) evt.getSource()).removePropertyChangeListener(this);
-//				} else if (evt.getPropertyName().equals(IndexModel.P_REVERT)) {
-//					((JiemamyElement) evt.getSource()).addPropertyChangeListener(this);
-//				}
-//			}
 		}
 		
 		@Override
 		public void dispose() {
-//			tableModel.removePropertyChangeListener(this);
-//			for (IndexModel column : tableModel.getIndexes().get()) {
-//				((JiemamyElement) column).removePropertyChangeListener(this);
-//			}
 			super.dispose();
 		}
 		
@@ -525,19 +511,6 @@
 		@Override
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
 			this.viewer = viewer;
-//			if (oldInput != null) {
-//				tableModel.removePropertyChangeListener(this);
-//				for (IndexModel indexModel : tableModel.getIndexes().get()) {
-//					((JiemamyElement) indexModel).removePropertyChangeListener(this);
-//				}
-//			}
-//			if (newInput != null) {
-//				tableModel.addPropertyChangeListener(this);
-//				for (IndexModel indexModel : tableModel.getIndexes().get()) {
-//					((JiemamyElement) indexModel).addPropertyChangeListener(this);
-//				}
-//			}
-			
 			super.inputChanged(viewer, oldInput, newInput);
 		}
 	}
@@ -705,11 +678,9 @@
 			txtIndexName.setEnabled(true);
 			chkIsUniqueIndex.setEnabled(true);
 			
+			// 現在値の設定
 			txtIndexName.setText(JiemamyPropertyUtil.careNull(indexModel.getName()));
 			chkIsUniqueIndex.setSelection(indexModel.isUnique());
-			
-			// 現在値の設定
-			// TODO
 		}
 		
 		@Override

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/JiemamyEditDialog.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/JiemamyEditDialog.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/JiemamyEditDialog.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -318,8 +318,10 @@
 	
 
 	/**
-	 * TODO for daisuke
+	 * 編集を検知するリスナ。
 	 * 
+	 * <p>編集が行われたタイミングで{@link JiemamyEditDialog#canExecuteOk()}をチェックし、OKボタンを有効化・無効化する。</p>
+	 * 
 	 * @author daisuke
 	 */
 	public class EditListener implements SelectionListener, KeyListener {

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/tab/AbstractTab.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/tab/AbstractTab.java	2009-03-17 16:19:53 UTC (rev 2899)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/ui/tab/AbstractTab.java	2009-03-17 16:46:44 UTC (rev 2900)
@@ -66,7 +66,9 @@
 	public abstract boolean isTabComplete();
 	
 	/**
-	 * TODO for daisuke
+	 * ダイアログにてOKが押下された時の処理を行う。
+	 * 
+	 * <p>サブクラスにて、必要に応じてオーバーライドする。</p>
 	 */
 	public void okPressed() {
 	}



Jiemamy-notify メーリングリストの案内
Back to archive index