1 package jp.sourceforge.gokigen.memoma.holders;
3 import java.util.Enumeration;
4 import java.util.Hashtable;
5 import android.util.Log;
7 import jp.sourceforge.gokigen.memoma.Main;
11 * 表示オブジェクト間の接続情報を保持するクラス
16 public class MeMoMaConnectLineHolder
18 private final IOperationHistoryHolder historyHolder;
19 public static final int ID_NOTSPECIFY = -1;
20 private Hashtable<Integer, ObjectConnector> connectLines;
21 private Integer serialNumber = 1;
23 public MeMoMaConnectLineHolder(IOperationHistoryHolder historyHolder)
25 this.historyHolder = historyHolder;
26 connectLines = new Hashtable<>();
30 public Enumeration<Integer> getLineKeys()
32 return (connectLines.keys());
35 public ObjectConnector getLine(Integer key)
37 return (connectLines.get(key));
40 public boolean disconnectLines(Integer key)
42 ObjectConnector removeTarget = connectLines.remove(key);
43 if (removeTarget != null)
45 historyHolder.addHistory(key, IOperationHistoryHolder.ChangeKind.DELETE_CONNECT_LINE, removeTarget);
47 Log.v(Main.APP_IDENTIFIER, "DISCONNECT LINES : " + key);
51 public void setSerialNumber(int id)
53 serialNumber = (id == ID_NOTSPECIFY) ? ++serialNumber : id;
56 public int getSerialNumber()
58 return (serialNumber);
61 public void removeAllLines()
67 public void dumpConnectLine(ObjectConnector conn)
73 Log.v(Main.APP_IDENTIFIER, "LINE " + conn.getKey() + " [" + conn.getFromObjectKey() + " -> " + conn.getToObjectKey() + "] ");
77 * keyToRemove で指定されたobjectの接続をすべて削除する
81 public void removeAllConnection(Integer keyToRemove)
83 Enumeration<Integer> keys = connectLines.keys();
84 while (keys.hasMoreElements())
86 Integer key = keys.nextElement();
87 ObjectConnector connector = connectLines.get(key);
88 if ((connector.getFromObjectKey() == keyToRemove)||(connector.getToObjectKey() == keyToRemove))
91 connectLines.remove(key);
96 public ObjectConnector createLine(int id)
98 ObjectConnector connector = new ObjectConnector(id, 1, 1, LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW, LineStyleHolder.LINESHAPE_NORMAL, LineStyleHolder.LINETHICKNESS_THIN, historyHolder);
99 connectLines.put(id, connector);
103 public ObjectConnector setLines(Integer fromKey, Integer toKey, LineStyleHolder lineHolder)
105 ObjectConnector connector = new ObjectConnector(serialNumber, fromKey, toKey, lineHolder.getLineStyle(), lineHolder.getLineShape(), lineHolder.getLineThickness(), historyHolder);
107 connectLines.put(serialNumber, connector);