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 String TAG = toString();
20 private final IOperationHistoryHolder historyHolder;
21 public static final int ID_NOTSPECIFY = -1;
22 private Hashtable<Integer, ObjectConnector> connectLines;
23 private Integer serialNumber = 1;
25 public MeMoMaConnectLineHolder(IOperationHistoryHolder historyHolder)
27 this.historyHolder = historyHolder;
28 connectLines = new Hashtable<>();
32 public Enumeration<Integer> getLineKeys()
34 return (connectLines.keys());
37 public ObjectConnector getLine(Integer key)
39 return (connectLines.get(key));
42 public boolean disconnectLines(Integer key)
44 ObjectConnector removeTarget = connectLines.remove(key);
45 if (removeTarget != null)
47 historyHolder.addHistory(key, IOperationHistoryHolder.ChangeKind.DELETE_CONNECT_LINE, removeTarget);
49 Log.v(TAG, "DISCONNECT LINES : " + key);
53 public void setSerialNumber(int id)
55 serialNumber = (id == ID_NOTSPECIFY) ? ++serialNumber : id;
58 public int getSerialNumber()
60 return (serialNumber);
63 public void removeAllLines()
69 public void dumpConnectLine(ObjectConnector conn)
75 Log.v(TAG, "LINE " + conn.getKey() + " [" + conn.getFromObjectKey() + " -> " + conn.getToObjectKey() + "] ");
79 * keyToRemove で指定されたobjectの接続をすべて削除する
83 public void removeAllConnection(Integer keyToRemove)
85 Enumeration<Integer> keys = connectLines.keys();
86 while (keys.hasMoreElements())
88 Integer key = keys.nextElement();
89 ObjectConnector connector = connectLines.get(key);
90 if ((connector.getFromObjectKey() == keyToRemove)||(connector.getToObjectKey() == keyToRemove))
93 connectLines.remove(key);
98 public ObjectConnector createLine(int id)
100 ObjectConnector connector = new ObjectConnector(id, 1, 1, LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW, LineStyleHolder.LINESHAPE_NORMAL, LineStyleHolder.LINETHICKNESS_THIN, historyHolder);
101 connectLines.put(id, connector);
105 public ObjectConnector setLines(Integer fromKey, Integer toKey, LineStyleHolder lineHolder)
107 ObjectConnector connector = new ObjectConnector(serialNumber, fromKey, toKey, lineHolder.getLineStyle(), lineHolder.getLineShape(), lineHolder.getLineThickness(), historyHolder);
109 connectLines.put(serialNumber, connector);