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() { }