diff --git a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyCellEditor.java b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyCellEditor.java index ce530a7..3a8603e 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyCellEditor.java +++ b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyCellEditor.java @@ -3,10 +3,8 @@ import application.editor.FlowCellEditor; import com.mxgraph.model.mxCell; import com.mxgraph.swing.mxGraphComponent; -import models.dataFlowModel.DataTransferChannel; import javax.swing.*; -import java.awt.*; import java.awt.event.MouseEvent; import java.util.EventObject; @@ -18,26 +16,35 @@ @Override public void startEditing(Object cellObj, EventObject eventObj) { + if (editingCell != null) stopEditing(true); + DependencyModelingStage ddmStage = (DependencyModelingStage) stage; + // セルがnull、または頂点以外なら編集しない - if (cellObj == null || !(cellObj instanceof mxCell)) { - return; - } + if (cellObj == null || !(cellObj instanceof mxCell)) return; mxCell cell = (mxCell) cellObj; - // エッジの場合もスキップ - if (cell.isEdge()) { - return; + switch (ddmStage.getCurState()){ + + case IDLE: //未選択状態 + if (cell.isEdge()) { + ddmStage.setState(DependencyModelingStageStatus.SELECT_DEPENDENCY_GRAPH); + } else { + ddmStage.setState(DependencyModelingStageStatus.SELECT_INTERFACE_NODE); + editInterfaceName(cell, eventObj); + ddmStage.setState(DependencyModelingStageStatus.IDLE); + } + break; + case SELECT_DEPENDENCY_GRAPH: //依存関係グラフを選択中 + break; + case SELECT_INTERFACE_NODE: //interface選択中 + break; } - // ダブルクリック以外では編集しない - if (eventObj instanceof MouseEvent) { - MouseEvent e = (MouseEvent) eventObj; - if (e.getClickCount() < 2) { - return; - } - } + } + + public void editInterfaceName(mxCell cell, EventObject eventObj){ // 現在のラベルを取得 String currentName = (cell.getValue() != null) ? cell.getValue().toString() : "";