[Jiemamy-notify:1810] commit [2983] [ECL-22] Indexタブ完成。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 3月 23日 (月) 22:01:58 JST


Revision: 2983
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2983
Author:   daisuke_m
Date:     2009-03-23 22:01:58 +0900 (Mon, 23 Mar 2009)

Log Message:
-----------
[ECL-22] Indexタブ完成。
[ECL-11] その他、各TableEditorの実装を整備。

Modified Paths:
--------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/editcommand/SwapListElementCommand.java
    hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java
    hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java
    hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogCheckTab.java
    hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java
    hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java
    hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java


-------------- next part --------------
Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/editcommand/SwapListElementCommand.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/editcommand/SwapListElementCommand.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/editcommand/SwapListElementCommand.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -20,6 +20,8 @@
 
 import java.util.List;
 
+import org.apache.commons.lang.Validate;
+
 import org.jiemamy.editcommand.Command;
 import org.jiemamy.model.JiemamyElement;
 
@@ -49,8 +51,11 @@
 	 * @param list 変更対象のリスト
 	 * @param subjectIndex スワップ主体要素のインデックス
 	 * @param objectIndex スワップ対象要素のインデックス
+	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
 	 */
 	public SwapListElementCommand(JiemamyElement target, List<?> list, int subjectIndex, int objectIndex) {
+		Validate.notNull(target);
+		Validate.notNull(list);
 		this.target = target;
 		this.list = list;
 		this.subjectIndex = subjectIndex;

Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java
===================================================================
--- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -404,10 +404,15 @@
 			DataSetModel dataSetModel = dataSets.get(index);
 			jiemamyFacade.removeDataSet(dataSetModel);
 			tableViewer.remove(dataSetModel);
-			table.setSelection(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
 			
-			disableEditControls();
-			
 			return dataSetModel;
 		}
 		

Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java
===================================================================
--- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDomainTab.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -648,12 +648,17 @@
 			jiemamyFacade.removeDomain(domainModel);
 			
 			tableViewer.remove(domainModel);
-			table.setSelection(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
 			
 			typeOptionManagers.remove(domainModel);
 			
-			disableEditControls();
-			
 			return domainModel;
 		}
 		

Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogCheckTab.java
===================================================================
--- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogCheckTab.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogCheckTab.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -433,10 +433,15 @@
 			jiemamyFacade.removeAttribute(tableModel, (AttributeModel) subject);
 			
 			tableViewer.remove(subject);
-			table.setSelection(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
 			
-			disableEditControls();
-			
 			return (JiemamyElement) subject;
 		}
 		

Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java
===================================================================
--- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogColumnTab.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -841,12 +841,17 @@
 			jiemamyFacade.removeAttribute(tableModel, (AttributeModel) subject);
 			
 			tableViewer.remove(subject);
-			table.setSelection(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
 			
 			typeOptionManagers.remove(subject);
 			
-			disableEditControls();
-			
 			return (JiemamyElement) subject;
 		}
 		

Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java
===================================================================
--- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogIndexTab.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -20,6 +20,7 @@
 
 import java.util.List;
 
+import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -93,19 +94,18 @@
 	/**
 	 * インスタンスを生成する。
 	 * 
-	 * @param parentTabFolder 親となるタブフォルダ
+	 * @param parent 親となるタブフォルダ
 	 * @param style
 	 * @param tableModel 編集対象テーブル
 	 * @param jiemamyFacade 
 	 */
-	public TableEditDialogIndexTab(TabFolder parentTabFolder, int style, TableModel tableModel,
-			JiemamyFacade jiemamyFacade) {
-		super(parentTabFolder, style, "インデックス(&I)"); // RESOURCE
+	public TableEditDialogIndexTab(TabFolder parent, int style, TableModel tableModel, JiemamyFacade jiemamyFacade) {
+		super(parent, style, "インデックス(&I)"); // RESOURCE
 		
 		this.tableModel = tableModel;
 		this.jiemamyFacade = jiemamyFacade;
 		
-		Composite composite = new Composite(parentTabFolder, SWT.NULL);
+		Composite composite = new Composite(parent, SWT.NULL);
 		composite.setLayout(new GridLayout(2, false));
 		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
 		
@@ -145,7 +145,6 @@
 		@Override
 		public void dispose() {
 			logger.debug(LogMarker.LIFECYCLE, "IndexColumnContentProvider: dispose");
-			super.dispose();
 		}
 		
 		public JiemamyElement getTargetModel() {
@@ -159,10 +158,8 @@
 			logger.trace(LogMarker.LIFECYCLE, "newInput: " + newInput);
 			
 			this.viewer = viewer;
-			
-			super.inputChanged(viewer, oldInput, newInput);
+			indexColumnsTableEditor.refreshTable();
 		}
-		
 	}
 	
 	/**
@@ -185,7 +182,8 @@
 					ColumnModel columnModel = referenceResolver.resolve(columnRef);
 					return columnModel.getName();
 				case 1:
-					return indexColumnModel.getSortOrder().toString(); // TODO ?
+					SortOrder sortOrder = indexColumnModel.getSortOrder();
+					return ObjectUtils.toString(sortOrder);
 					
 				default:
 					return StringUtils.EMPTY;
@@ -224,7 +222,8 @@
 			TableViewer tableViewer = getTableViewer();
 			int index = indexesTableEditor.getTableViewer().getTable().getSelectionIndex();
 			if (index >= 0) {
-				tableViewer.setInput(tableModel.getIndexes().get(index));
+				indexColumns = tableModel.getIndexes().get(index).getIndexColumns();
+				tableViewer.setInput(indexColumns);
 				indexColumnsTableEditor.getBtnAdd().setEnabled(true);
 			} else {
 				tableViewer.setInput(null);
@@ -289,7 +288,7 @@
 			
 			TableColumn colSort = new TableColumn(table, SWT.LEFT);
 			colSort.setText("ソート順"); // RESOURCE
-			colSort.setWidth(50);
+			colSort.setWidth(80);
 		}
 		
 		@Override
@@ -364,6 +363,7 @@
 				table.setSelection(addedIndex);
 				enableEditControls(addedIndex);
 				
+				indexColumnsTableEditor.refreshTable();
 				return indexColumnModel;
 			}
 			return null;
@@ -395,6 +395,7 @@
 				table.setSelection(addedIndex);
 				enableEditControls(addedIndex);
 				
+				indexColumnsTableEditor.refreshTable();
 				return indexColumnModel;
 			}
 			return null;
@@ -412,6 +413,7 @@
 			IndexModel indexModel = tableModel.getIndexes().get(indexIndex);
 			jiemamyFacade.swapListElement(indexModel, indexColumns, index, index + 1);
 			
+			indexColumnsTableEditor.refreshTable();
 			table.setSelection(index + 1);
 			enableEditControls(index + 1);
 		}
@@ -428,6 +430,7 @@
 			IndexModel indexModel = tableModel.getIndexes().get(indexIndex);
 			jiemamyFacade.swapListElement(indexModel, indexColumns, index, index - 1);
 			
+			indexColumnsTableEditor.refreshTable();
 			table.setSelection(index - 1);
 			enableEditControls(index - 1);
 		}
@@ -444,9 +447,16 @@
 			IndexColumnModel removed = tableModel.getIndexes().get(indexIndex).getIndexColumns().remove(index);
 			
 			tableViewer.remove(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
 			
-			disableEditControls();
-			
+			indexColumnsTableEditor.refreshTable();
 			return removed;
 		}
 		
@@ -682,7 +692,9 @@
 			jiemamyFacade.addIndex(tableModel, indexModel);
 			
 			int addedIndex = tableModel.getIndexes().indexOf(indexModel);
+			table.select(addedIndex);
 			table.setSelection(addedIndex);
+			indexColumnsTableEditor.updateInput();
 			enableEditControls(addedIndex);
 			txtIndexName.setFocus();
 			
@@ -708,6 +720,7 @@
 			
 			int addedIndex = tableModel.getIndexes().indexOf(indexModel);
 			table.setSelection(addedIndex);
+			indexColumnsTableEditor.updateInput();
 			enableEditControls(addedIndex);
 			txtIndexName.setFocus();
 			
@@ -755,10 +768,16 @@
 			jiemamyFacade.removeIndex(tableModel, indexModel);
 			
 			tableViewer.remove(indexModel);
-			table.setSelection(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
+			indexColumnsTableEditor.updateInput();
 			
-			disableEditControls();
-			
 			return indexModel;
 		}
 		

Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java
===================================================================
--- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java	2009-03-23 10:14:20 UTC (rev 2982)
+++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/table/TableEditDialogLocalKeyTab.java	2009-03-23 13:01:58 UTC (rev 2983)
@@ -479,10 +479,15 @@
 			jiemamyFacade.removeAttribute(tableModel, (AttributeModel) subject);
 			
 			tableViewer.remove(subject);
-			table.setSelection(index);
+			int nextSelection = table.getItemCount() > index ? index : index - 1;
+			if (nextSelection >= 0) {
+				table.setSelection(nextSelection);
+				enableEditorControls(nextSelection);
+			} else {
+				disableEditorControls();
+			}
+			table.setFocus();
 			
-			disableEditControls();
-			
 			return (JiemamyElement) subject;
 		}
 		



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