[Jiemamy-notify] commit [2114] コミット漏れ

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2008年 11月 9日 (日) 09:17:55 JST


Revision: 2114
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=jiemamy&view=rev&rev=2114
Author:   shin1
Date:     2008-11-09 09:17:55 +0900 (Sun, 09 Nov 2008)

Log Message:
-----------
コミット漏れ

Modified Paths:
--------------
    artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/RootModelTest.java


-------------- next part --------------
Modified: artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/RootModelTest.java
===================================================================
--- artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/RootModelTest.java	2008-11-09 00:17:13 UTC (rev 2113)
+++ artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/RootModelTest.java	2008-11-09 00:17:55 UTC (rev 2114)
@@ -31,6 +31,7 @@
 import org.jiemamy.core.S2FactoryStrategy;
 import org.jiemamy.creator.JiemamyModelFactory;
 import org.jiemamy.event.model.RootModelChangeSupportImpl;
+import org.jiemamy.event.model.node.TableModelChangeSupportImpl;
 import org.jiemamy.spec.event.ModelChangeEvent;
 import org.jiemamy.spec.event.ModelChangeListener;
 import org.jiemamy.spec.exception.TooManyElementsException;
@@ -89,24 +90,35 @@
 		
 		// rootModelの監視を開始する。
 		rootModel.getAdapter(RootModelChangeSupportImpl.class).addModelChangeListener(listener);
+		// tableModelの監視を開始する。
+		TableModelChangeListenerImpl tableModelChangeListener = new TableModelChangeListenerImpl();
+		tableModel.getAdapter(TableModelChangeSupportImpl.class).addModelChangeListener(tableModelChangeListener);
 		
 		// 通常のRootModelが直接保持するCollection<TableModel>が保持する要素のひとつの属性を操作する。
 		System.out.println("-------");
+		tableModelChangeListener.events.clear();
 		listener.events.clear();
 		tableModel.setName("T_USER01a");
-		assertEquals(1, listener.events.size());
+		assertEquals(1, listener.events.size()); // RootModelのListener
+		assertEquals(1, tableModelChangeListener.events.size()); // TableModelのListener
 		
 		// RootModelが保持するCollection<TableModel>が保持する要素の一つが保持する
 		// Collection<ColumnModel>を操作する。
 		System.out.println("-------tableModel#columnsにcolumnをひとつ追加");
+		tableModelChangeListener.events.clear();
 		listener.events.clear();
 		tableModel.getColumns().add(columnModel);
+		// TableModelのListenerにもCHANGEDしか来ない。
+		// 以前の仕組みではBefore/Afterが飛んできていたが今はBeforeは殺している。
+		assertEquals(1, tableModelChangeListener.events.size());
 		assertEquals("tableModel#columnsにcolumnをひとつ追加", 1, listener.events.size()); // バブリングの確認
 		
 		// RootModelが保持するCollection<TableModel>が保持する要素の一つが保持する
 		// Collection<ColumnModel>が保持する要素の属性を操作する。
+		tableModelChangeListener.events.clear();
 		listener.events.clear();
 		columnModel.setFreeString("freeString");
+		assertEquals(1, tableModelChangeListener.events.size()); // TableModelのListenerにはColumnに対するCHANGED
 		assertEquals(1, listener.events.size()); // バブリングの確認
 	}
 	
@@ -154,4 +166,26 @@
 			System.out.print("RootModelChangeListenerImpl:" + e.toString());
 		}
 	}
+	
+	private class TableModelChangeListenerImpl implements ModelChangeListener {
+		
+		/** Eventの履歴 */
+		public List<ModelChangeEvent> events = new ArrayList<ModelChangeEvent>();
+		
+
+		/**
+		 * Eventの履歴を空にする。
+		 */
+		public void clear() {
+			events.clear();
+		}
+		
+		/**
+		 * {@inheritDoc}
+		 */
+		public void modelChanged(ModelChangeEvent e) {
+			events.add(e);
+			System.out.print("RootModelChangeListenerImpl:" + e.toString());
+		}
+	}
 }


Jiemamy-notify メーリングリストの案内
Zurück zum Archiv-Index