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; }