svnno****@sourc*****
svnno****@sourc*****
2008年 11月 19日 (水) 01:53:30 JST
Revision: 2171 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2171 Author: shin1 Date: 2008-11-19 01:53:29 +0900 (Wed, 19 Nov 2008) Log Message: ----------- [CORE-80]最新の自動生成結果に更新した。いくつかのソース(AbstractなModelとか)は出力されなくなったので削除する。 Modified Paths: -------------- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/ColumnModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/RootModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/ForeignKeyModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintsModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/InsertDataSetModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/RecordModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/index/IndexModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/TableModelChangeSupportImpl.java Removed Paths: ------------- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/AbstractModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/JiemamyModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractConnectionModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractRelationModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/AbstractConstraintModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/AbstractDataTypeChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeAdapterChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/GeneralDataTypeChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/SpecialDataTypeChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/adapter/ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractEntityModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractNodeModelChangeSupportImpl.java artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/typedef/ -------------- next part -------------- Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/AbstractModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/AbstractModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/AbstractModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model; - -import org.jiemamy.core.model.AbstractModel; -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * AbstractModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractModel} - * @category instance creation - */ - public AbstractModelChangeSupportImpl(AbstractModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/ColumnModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/ColumnModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/ColumnModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -18,13 +18,7 @@ */ package org.jiemamy.event.model; -import java.lang.ref.WeakReference; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.accessor.ColumnModelAccessor; import org.jiemamy.spec.event.ModelChangeEvent; import org.jiemamy.spec.event.ModelChangeListener; import org.jiemamy.spec.event.ModelChangeSupport; @@ -38,11 +32,6 @@ */ public class ColumnModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - private static Logger logger = LoggerFactory.getLogger(ModelChangeSupport.class); - - /** イベント発火元となるModel */ - private WeakReference<ColumnModel> eventTarget; - /** * ColumnModelの属性の変更Eventを処理するListener * @@ -66,9 +55,7 @@ * @category instance creation */ public ColumnModelChangeSupportImpl(ColumnModel source) { - ColumnModelAccessor accessor = (ColumnModelAccessor) source; source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - eventTarget = new WeakReference<ColumnModel>(source); } } Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/JiemamyModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/JiemamyModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/JiemamyModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,57 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package org.jiemamy.event.model; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.JiemamyModel; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、JiemamyModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class JiemamyModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * JiemamyModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link JiemamyModel} - * @category instance creation - */ - public JiemamyModelChangeSupportImpl(JiemamyModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/RootModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/RootModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/RootModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -67,9 +67,8 @@ * {@inheritDoc} */ public void collectionChanged(ObservableCollectionChangeEvent<List<DomainModel>, DomainModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { if (event.getTiming() == Timing.COLLECTION_CHANGED) { event.setSource(event.getModel()); } else { @@ -95,9 +94,8 @@ */ public void collectionChanged( ObservableCollectionChangeEvent<List<AbstractNodeModel>, AbstractNodeModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { if (event.getTiming() == Timing.COLLECTION_CHANGED) { event.setSource(event.getModel()); } else { @@ -123,9 +121,8 @@ */ public void collectionChanged( ObservableCollectionChangeEvent<List<InsertDataSetModel>, InsertDataSetModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { if (event.getTiming() == Timing.COLLECTION_CHANGED) { event.setSource(event.getModel()); } else { @@ -161,8 +158,8 @@ */ public RootModelChangeSupportImpl(RootModel source) { RootModelAccessor accessor = (RootModelAccessor) source; - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); eventTarget = new WeakReference<RootModel>(source); + source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); ((ObservableList<DomainModel>) accessor.getModifiableDomains()).addListener(domainsCollectionChangeListener); ((ObservableList<AbstractNodeModel>) accessor.getModifiableNodes()).addListener(nodesCollectionChangeListener); ((ObservableList<InsertDataSetModel>) accessor.getModifiableInsertDataSets()) @@ -181,26 +178,26 @@ } /** - * nodesのcollectionを監視するListenerに通知されたEventをRootModelの監視Listenerへ通知する。 + * insertDataSetsのcollectionを監視するListenerに通知されたEventをRootModelの監視Listenerへ通知する。 * * @param event {@link ObservableCollectionChangeEvent} */ - public void fireNodesCollectionChangeEvent( - ObservableCollectionChangeEvent<List<AbstractNodeModel>, AbstractNodeModel> event) { + public void fireInsertDataSetsCollectionChangeEvent( + ObservableCollectionChangeEvent<List<InsertDataSetModel>, InsertDataSetModel> event) { BeanDesc beanDesc = new BeanDescImpl(RootModelImpl.class); - event.setField(beanDesc.getField("nodes")); + event.setField(beanDesc.getField("insertDataSets")); fireModelChange(event); } /** - * insertDataSetsのcollectionを監視するListenerに通知されたEventをRootModelの監視Listenerへ通知する。 + * nodesのcollectionを監視するListenerに通知されたEventをRootModelの監視Listenerへ通知する。 * * @param event {@link ObservableCollectionChangeEvent} */ - public void fireInsertDataSetsCollectionChangeEvent( - ObservableCollectionChangeEvent<List<InsertDataSetModel>, InsertDataSetModel> event) { + public void fireNodesCollectionChangeEvent( + ObservableCollectionChangeEvent<List<AbstractNodeModel>, AbstractNodeModel> event) { BeanDesc beanDesc = new BeanDescImpl(RootModelImpl.class); - event.setField(beanDesc.getField("insertDataSets")); + event.setField(beanDesc.getField("nodes")); fireModelChange(event); } } Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractConnectionModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractConnectionModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractConnectionModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.connection; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.connection.AbstractConnectionModel; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractConnectionModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractConnectionModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * AbstractConnectionModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractConnectionModel} - * @category instance creation - */ - public AbstractConnectionModelChangeSupportImpl(AbstractConnectionModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractRelationModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractRelationModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/AbstractRelationModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.connection; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.connection.AbstractRelationModel; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractRelationModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractRelationModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * AbstractRelationModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractRelationModel} - * @category instance creation - */ - public AbstractRelationModelChangeSupportImpl(AbstractRelationModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/ForeignKeyModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/ForeignKeyModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/connection/ForeignKeyModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -18,20 +18,25 @@ */ package org.jiemamy.event.model.connection; +import java.lang.ref.WeakReference; import java.util.List; import org.seasar.framework.beans.BeanDesc; import org.seasar.framework.beans.impl.BeanDescImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.jiemamy.core.model.connection.ForeignKeyModelImpl; import org.jiemamy.event.AbstractModelChangeSupport; import org.jiemamy.event.collectionimpl.ObservableList; +import org.jiemamy.spec.accessor.connection.ForeignKeyModelAccessor; import org.jiemamy.spec.event.ModelChangeEvent; import org.jiemamy.spec.event.ModelChangeListener; import org.jiemamy.spec.event.ModelChangeSupport; import org.jiemamy.spec.event.Observable; import org.jiemamy.spec.event.ObservableCollectionChangeEvent; import org.jiemamy.spec.event.ObservableCollectionChangeListener; +import org.jiemamy.spec.event.ObservableCollectionChangeEvent.Timing; import org.jiemamy.spec.model.connection.ForeignKeyMapping; import org.jiemamy.spec.model.connection.ForeignKeyModel; @@ -42,6 +47,11 @@ */ public class ForeignKeyModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { + private static Logger logger = LoggerFactory.getLogger(ModelChangeSupport.class); + + /** イベント発火元となるModel */ + private WeakReference<ForeignKeyModel> eventTarget; + /** * mappingsのリストを監視するListener * @@ -56,9 +66,14 @@ */ public void collectionChanged( ObservableCollectionChangeEvent<List<ForeignKeyMapping>, ForeignKeyMapping> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { + if (event.getTiming() == Timing.COLLECTION_CHANGED) { + event.setSource(event.getModel()); + } else { + event.setSource(eventTarget.get()); + } + logger.trace("mappingsCollectionChangeListener#changed(): " + event); fireMappingsCollectionChangeEvent(event); } } @@ -87,8 +102,10 @@ * @category instance creation */ public ForeignKeyModelChangeSupportImpl(ForeignKeyModel source) { + ForeignKeyModelAccessor accessor = (ForeignKeyModelAccessor) source; + eventTarget = new WeakReference<ForeignKeyModel>(source); source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - ((ObservableList<ForeignKeyMapping>) source.getMappings()).addListener(mappingsCollectionChangeListener); + ((ObservableList<ForeignKeyMapping>) accessor.getMappings()).addListener(mappingsCollectionChangeListener); } /** Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/AbstractConstraintModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/AbstractConstraintModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/AbstractConstraintModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.constraint; - -import org.jiemamy.core.model.constraint.AbstractConstraintModel; -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractConstraintModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractConstraintModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * AbstractConstraintModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractConstraintModel} - * @category instance creation - */ - public AbstractConstraintModelChangeSupportImpl(AbstractConstraintModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,57 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.constraint; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.constraint.Constraint; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、Constraintからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class ConstraintChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * Constraintの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link Constraint} - * @category instance creation - */ - public ConstraintChangeSupportImpl(Constraint source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintsModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintsModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/constraint/ConstraintsModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -18,11 +18,25 @@ */ package org.jiemamy.event.model.constraint; +import java.lang.ref.WeakReference; +import java.util.Map; + +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.impl.BeanDescImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jiemamy.core.model.constraint.ConstraintsModelImpl; import org.jiemamy.event.AbstractModelChangeSupport; +import org.jiemamy.event.collectionimpl.ObservableMap; +import org.jiemamy.spec.accessor.constraint.ConstraintsModelAccessor; import org.jiemamy.spec.event.ModelChangeEvent; import org.jiemamy.spec.event.ModelChangeListener; import org.jiemamy.spec.event.ModelChangeSupport; import org.jiemamy.spec.event.Observable; +import org.jiemamy.spec.event.ObservableCollectionChangeEvent; +import org.jiemamy.spec.event.ObservableCollectionChangeListener; +import org.jiemamy.spec.event.ObservableCollectionChangeEvent.Timing; import org.jiemamy.spec.model.constraint.ConstraintsModel; /** @@ -32,6 +46,38 @@ */ public class ConstraintsModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { + private static Logger logger = LoggerFactory.getLogger(ModelChangeSupport.class); + + /** イベント発火元となるModel */ + private WeakReference<ConstraintsModel> eventTarget; + + /** + * constraintMapのリストを監視するListener + * + * @see ObservableCollectionChangeListener + * @see #fireConstraintMapCollectionChangeEvent(ObservableCollectionChangeEvent) + */ + private ObservableCollectionChangeListener<Map<Class<? extends org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint> constraintMapCollectionChangeListener = + new ObservableCollectionChangeListener<Map<Class<? extends org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint>() { + + /** + * {@inheritDoc} + */ + public void collectionChanged( + ObservableCollectionChangeEvent<Map<Class<? extends org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint> event) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { + if (event.getTiming() == Timing.COLLECTION_CHANGED) { + event.setSource(event.getModel()); + } else { + event.setSource(eventTarget.get()); + } + logger.trace("constraintMapCollectionChangeListener#changed(): " + event); + fireConstraintMapCollectionChangeEvent(event); + } + } + }; + /** * ConstraintsModelの属性の変更Eventを処理するListener * @@ -55,7 +101,22 @@ * @category instance creation */ public ConstraintsModelChangeSupportImpl(ConstraintsModel source) { + ConstraintsModelAccessor accessor = (ConstraintsModelAccessor) source; + eventTarget = new WeakReference<ConstraintsModel>(source); source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); + ((ObservableMap<Class<? extends org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint>) accessor + .getConstraintMap()).addListener(constraintMapCollectionChangeListener); } + /** + * constraintMapのcollectionを監視するListenerに通知されたEventをConstraintsModelの監視Listenerへ通知する。 + * + * @param event {@link ObservableCollectionChangeEvent} + */ + public void fireConstraintMapCollectionChangeEvent( + ObservableCollectionChangeEvent<Map<Class<? extends org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint>, org.jiemamy.spec.model.constraint.Constraint> event) { + BeanDesc beanDesc = new BeanDescImpl(ConstraintsModelImpl.class); + event.setField(beanDesc.getField("constraintMap")); + fireModelChange(event); + } } Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/InsertDataSetModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/InsertDataSetModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/InsertDataSetModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -18,23 +18,26 @@ */ package org.jiemamy.event.model.dataset; -import java.util.List; +import java.lang.ref.WeakReference; import java.util.Map; import org.seasar.framework.beans.BeanDesc; import org.seasar.framework.beans.impl.BeanDescImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.jiemamy.core.model.dataset.InsertDataSetModelImpl; import org.jiemamy.event.AbstractModelChangeSupport; import org.jiemamy.event.collectionimpl.ObservableMap; +import org.jiemamy.spec.accessor.dataset.InsertDataSetModelAccessor; import org.jiemamy.spec.event.ModelChangeEvent; import org.jiemamy.spec.event.ModelChangeListener; import org.jiemamy.spec.event.ModelChangeSupport; import org.jiemamy.spec.event.Observable; import org.jiemamy.spec.event.ObservableCollectionChangeEvent; import org.jiemamy.spec.event.ObservableCollectionChangeListener; +import org.jiemamy.spec.event.ObservableCollectionChangeEvent.Timing; import org.jiemamy.spec.model.dataset.InsertDataSetModel; -import org.jiemamy.spec.model.dataset.RecordModel; import org.jiemamy.spec.model.node.AbstractEntityModel; /** @@ -44,23 +47,33 @@ */ public class InsertDataSetModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { + private static Logger logger = LoggerFactory.getLogger(ModelChangeSupport.class); + + /** イベント発火元となるModel */ + private WeakReference<InsertDataSetModel> eventTarget; + /** * recordsのリストを監視するListener * * @see ObservableCollectionChangeListener * @see #fireRecordsCollectionChangeEvent(ObservableCollectionChangeEvent) */ - private ObservableCollectionChangeListener<Map<AbstractEntityModel, List<RecordModel>>, List<RecordModel>> recordsCollectionChangeListener = - new ObservableCollectionChangeListener<Map<AbstractEntityModel, List<RecordModel>>, List<RecordModel>>() { + private ObservableCollectionChangeListener<Map<AbstractEntityModel, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>>, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>> recordsCollectionChangeListener = + new ObservableCollectionChangeListener<Map<AbstractEntityModel, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>>, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>>() { /** * {@inheritDoc} */ public void collectionChanged( - ObservableCollectionChangeEvent<Map<AbstractEntityModel, List<RecordModel>>, List<RecordModel>> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + ObservableCollectionChangeEvent<Map<AbstractEntityModel, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>>, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>> event) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { + if (event.getTiming() == Timing.COLLECTION_CHANGED) { + event.setSource(event.getModel()); + } else { + event.setSource(eventTarget.get()); + } + logger.trace("recordsCollectionChangeListener#changed(): " + event); fireRecordsCollectionChangeEvent(event); } } @@ -89,9 +102,11 @@ * @category instance creation */ public InsertDataSetModelChangeSupportImpl(InsertDataSetModel source) { + InsertDataSetModelAccessor accessor = (InsertDataSetModelAccessor) source; + eventTarget = new WeakReference<InsertDataSetModel>(source); source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - ((ObservableMap<AbstractEntityModel, List<RecordModel>>) source.getRecords()) - .addListener(recordsCollectionChangeListener); + ((ObservableMap<AbstractEntityModel, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>>) accessor + .getRecords()).addListener(recordsCollectionChangeListener); } /** @@ -100,7 +115,7 @@ * @param event {@link ObservableCollectionChangeEvent} */ public void fireRecordsCollectionChangeEvent( - ObservableCollectionChangeEvent<Map<AbstractEntityModel, List<RecordModel>>, List<RecordModel>> event) { + ObservableCollectionChangeEvent<Map<AbstractEntityModel, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>>, java.util.List<org.jiemamy.spec.model.dataset.RecordModel>> event) { BeanDesc beanDesc = new BeanDescImpl(InsertDataSetModelImpl.class); event.setField(beanDesc.getField("records")); fireModelChange(event); Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/RecordModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/RecordModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/dataset/RecordModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -18,20 +18,25 @@ */ package org.jiemamy.event.model.dataset; +import java.lang.ref.WeakReference; import java.util.Map; import org.seasar.framework.beans.BeanDesc; import org.seasar.framework.beans.impl.BeanDescImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.jiemamy.core.model.dataset.RecordModelImpl; import org.jiemamy.event.AbstractModelChangeSupport; import org.jiemamy.event.collectionimpl.ObservableMap; +import org.jiemamy.spec.accessor.dataset.RecordModelAccessor; import org.jiemamy.spec.event.ModelChangeEvent; import org.jiemamy.spec.event.ModelChangeListener; import org.jiemamy.spec.event.ModelChangeSupport; import org.jiemamy.spec.event.Observable; import org.jiemamy.spec.event.ObservableCollectionChangeEvent; import org.jiemamy.spec.event.ObservableCollectionChangeListener; +import org.jiemamy.spec.event.ObservableCollectionChangeEvent.Timing; import org.jiemamy.spec.model.ColumnModel; import org.jiemamy.spec.model.dataset.RecordModel; @@ -42,6 +47,11 @@ */ public class RecordModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { + private static Logger logger = LoggerFactory.getLogger(ModelChangeSupport.class); + + /** イベント発火元となるModel */ + private WeakReference<RecordModel> eventTarget; + /** * valuesのリストを監視するListener * @@ -55,9 +65,14 @@ * {@inheritDoc} */ public void collectionChanged(ObservableCollectionChangeEvent<Map<ColumnModel, String>, String> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { + if (event.getTiming() == Timing.COLLECTION_CHANGED) { + event.setSource(event.getModel()); + } else { + event.setSource(eventTarget.get()); + } + logger.trace("valuesCollectionChangeListener#changed(): " + event); fireValuesCollectionChangeEvent(event); } } @@ -86,8 +101,10 @@ * @category instance creation */ public RecordModelChangeSupportImpl(RecordModel source) { + RecordModelAccessor accessor = (RecordModelAccessor) source; + eventTarget = new WeakReference<RecordModel>(source); source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - ((ObservableMap<ColumnModel, String>) source.getValues()).addListener(valuesCollectionChangeListener); + ((ObservableMap<ColumnModel, String>) accessor.getValues()).addListener(valuesCollectionChangeListener); } /** Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/AbstractDataTypeChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/AbstractDataTypeChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/AbstractDataTypeChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.datatype; - -import org.jiemamy.core.model.datatype.AbstractDataType; -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractDataTypeからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractDataTypeChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * AbstractDataTypeの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractDataType} - * @category instance creation - */ - public AbstractDataTypeChangeSupportImpl(AbstractDataType source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeAdapterChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeAdapterChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeAdapterChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,57 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.datatype; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.datatype.DataTypeAdapter; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、DataTypeAdapterからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class DataTypeAdapterChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * DataTypeAdapterの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link DataTypeAdapter} - * @category instance creation - */ - public DataTypeAdapterChangeSupportImpl(DataTypeAdapter source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/DataTypeChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,57 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.datatype; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.datatype.DataType; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、DataTypeからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class DataTypeChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * DataTypeの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link DataType} - * @category instance creation - */ - public DataTypeChangeSupportImpl(DataType source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/GeneralDataTypeChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/GeneralDataTypeChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/GeneralDataTypeChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.datatype; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.datatype.GeneralDataType; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、GeneralDataTypeからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class GeneralDataTypeChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * GeneralDataTypeの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link GeneralDataType} - * @category instance creation - */ - public GeneralDataTypeChangeSupportImpl(GeneralDataType source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/SpecialDataTypeChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/SpecialDataTypeChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/datatype/SpecialDataTypeChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.datatype; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.datatype.SpecialDataType; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、SpecialDataTypeからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class SpecialDataTypeChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * SpecialDataTypeの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link SpecialDataType} - * @category instance creation - */ - public SpecialDataTypeChangeSupportImpl(SpecialDataType source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/index/IndexModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/index/IndexModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/index/IndexModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -18,20 +18,25 @@ */ package org.jiemamy.event.model.index; +import java.lang.ref.WeakReference; import java.util.List; import org.seasar.framework.beans.BeanDesc; import org.seasar.framework.beans.impl.BeanDescImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.jiemamy.core.model.index.IndexModelImpl; import org.jiemamy.event.AbstractModelChangeSupport; import org.jiemamy.event.collectionimpl.ObservableList; +import org.jiemamy.spec.accessor.index.IndexModelAccessor; import org.jiemamy.spec.event.ModelChangeEvent; import org.jiemamy.spec.event.ModelChangeListener; import org.jiemamy.spec.event.ModelChangeSupport; import org.jiemamy.spec.event.Observable; import org.jiemamy.spec.event.ObservableCollectionChangeEvent; import org.jiemamy.spec.event.ObservableCollectionChangeListener; +import org.jiemamy.spec.event.ObservableCollectionChangeEvent.Timing; import org.jiemamy.spec.model.index.IndexColumnModel; import org.jiemamy.spec.model.index.IndexModel; @@ -42,6 +47,11 @@ */ public class IndexModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { + private static Logger logger = LoggerFactory.getLogger(ModelChangeSupport.class); + + /** イベント発火元となるModel */ + private WeakReference<IndexModel> eventTarget; + /** * columnsのリストを監視するListener * @@ -56,9 +66,14 @@ */ public void collectionChanged( ObservableCollectionChangeEvent<List<IndexColumnModel>, IndexColumnModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { + if (event.getTiming() == Timing.COLLECTION_CHANGED) { + event.setSource(event.getModel()); + } else { + event.setSource(eventTarget.get()); + } + logger.trace("columnsCollectionChangeListener#changed(): " + event); fireColumnsCollectionChangeEvent(event); } } @@ -87,8 +102,10 @@ * @category instance creation */ public IndexModelChangeSupportImpl(IndexModel source) { + IndexModelAccessor accessor = (IndexModelAccessor) source; + eventTarget = new WeakReference<IndexModel>(source); source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - ((ObservableList<IndexColumnModel>) source.getColumns()).addListener(columnsCollectionChangeListener); + ((ObservableList<IndexColumnModel>) accessor.getColumns()).addListener(columnsCollectionChangeListener); } /** Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractEntityModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractEntityModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractEntityModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,61 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.node; - -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.model.node.AbstractEntityModel; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractEntityModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractEntityModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * AbstractEntityModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractEntityModel} - * @category instance creation - */ - public AbstractEntityModelChangeSupportImpl(AbstractEntityModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - } - -} Deleted: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractNodeModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractNodeModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/AbstractNodeModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -1,142 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/02 - * - * This file is part of Jiemamy. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package org.jiemamy.event.model.node; - -import java.util.List; - -import org.seasar.framework.beans.BeanDesc; -import org.seasar.framework.beans.impl.BeanDescImpl; - -import org.jiemamy.core.model.node.AbstractNodeModelImpl; -import org.jiemamy.event.AbstractModelChangeSupport; -import org.jiemamy.event.collectionimpl.ObservableList; -import org.jiemamy.spec.event.ModelChangeEvent; -import org.jiemamy.spec.event.ModelChangeListener; -import org.jiemamy.spec.event.ModelChangeSupport; -import org.jiemamy.spec.event.Observable; -import org.jiemamy.spec.event.ObservableCollectionChangeEvent; -import org.jiemamy.spec.event.ObservableCollectionChangeListener; -import org.jiemamy.spec.model.connection.AbstractConnectionModel; -import org.jiemamy.spec.model.node.AbstractNodeModel; - -/** - * Event関連の処理をModel内に直接記述するとModelのSourceの可読性が低くなるため、AbstractNodeModelからそれらを引き受ける。 - * - * @author shin1ogawa - */ -public class AbstractNodeModelChangeSupportImpl extends AbstractModelChangeSupport implements ModelChangeSupport { - - /** - * sourceConnectionsのリストを監視するListener - * - * @see ObservableCollectionChangeListener - * @see #fireSourceConnectionsCollectionChangeEvent(ObservableCollectionChangeEvent) - */ - private ObservableCollectionChangeListener<List<AbstractConnectionModel>, AbstractConnectionModel> sourceConnectionsCollectionChangeListener = - new ObservableCollectionChangeListener<List<AbstractConnectionModel>, AbstractConnectionModel>() { - - /** - * {@inheritDoc} - */ - public void collectionChanged( - ObservableCollectionChangeEvent<List<AbstractConnectionModel>, AbstractConnectionModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { - fireSourceConnectionsCollectionChangeEvent(event); - } - } - }; - - /** - * targetConnectionsのリストを監視するListener - * - * @see ObservableCollectionChangeListener - * @see #fireTargetConnectionsCollectionChangeEvent(ObservableCollectionChangeEvent) - */ - private ObservableCollectionChangeListener<List<AbstractConnectionModel>, AbstractConnectionModel> targetConnectionsCollectionChangeListener = - new ObservableCollectionChangeListener<List<AbstractConnectionModel>, AbstractConnectionModel>() { - - /** - * {@inheritDoc} - */ - public void collectionChanged( - ObservableCollectionChangeEvent<List<AbstractConnectionModel>, AbstractConnectionModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { - fireTargetConnectionsCollectionChangeEvent(event); - } - } - }; - - /** - * AbstractNodeModelの属性の変更Eventを処理するListener - * - * @see #fireModelChange(ModelChangeEvent) - */ - private ModelChangeListener modelChangeListener = new ModelChangeListener() { - - /** - * {@inheritDoc} - */ - public void modelChanged(ModelChangeEvent event) { - fireModelChange(event); - } - }; - - - /** - * コンストラクタ。 - * - * @param source {@link AbstractNodeModel} - * @category instance creation - */ - public AbstractNodeModelChangeSupportImpl(AbstractNodeModel source) { - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); - ((ObservableList<AbstractConnectionModel>) source.getSourceConnections()) - .addListener(sourceConnectionsCollectionChangeListener); - ((ObservableList<AbstractConnectionModel>) source.getTargetConnections()) - .addListener(targetConnectionsCollectionChangeListener); - } - - /** - * sourceConnectionsのcollectionを監視するListenerに通知されたEventをAbstractNodeModelの監視Listenerへ通知する。 - * - * @param event {@link ObservableCollectionChangeEvent} - */ - public void fireSourceConnectionsCollectionChangeEvent( - ObservableCollectionChangeEvent<List<AbstractConnectionModel>, AbstractConnectionModel> event) { - BeanDesc beanDesc = new BeanDescImpl(AbstractNodeModelImpl.class); - event.setField(beanDesc.getField("sourceConnections")); - fireModelChange(event); - } - - /** - * targetConnectionsのcollectionを監視するListenerに通知されたEventをAbstractNodeModelの監視Listenerへ通知する。 - * - * @param event {@link ObservableCollectionChangeEvent} - */ - public void fireTargetConnectionsCollectionChangeEvent( - ObservableCollectionChangeEvent<List<AbstractConnectionModel>, AbstractConnectionModel> event) { - BeanDesc beanDesc = new BeanDescImpl(AbstractNodeModelImpl.class); - event.setField(beanDesc.getField("targetConnections")); - fireModelChange(event); - } -} Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/TableModelChangeSupportImpl.java =================================================================== --- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/TableModelChangeSupportImpl.java 2008-11-18 16:51:41 UTC (rev 2170) +++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/model/node/TableModelChangeSupportImpl.java 2008-11-18 16:53:29 UTC (rev 2171) @@ -67,9 +67,8 @@ * {@inheritDoc} */ public void collectionChanged(ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { if (event.getTiming() == Timing.COLLECTION_CHANGED) { event.setSource(event.getModel()); } else { @@ -94,9 +93,8 @@ * {@inheritDoc} */ public void collectionChanged(ObservableCollectionChangeEvent<List<IndexModel>, IndexModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { if (event.getTiming() == Timing.COLLECTION_CHANGED) { event.setSource(event.getModel()); } else { @@ -122,9 +120,8 @@ */ public void collectionChanged( ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel> event) { - if (event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_ADD - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_REMOVE - && event.getTiming() != ObservableCollectionChangeEvent.Timing.BEFORE_SET) { + if (event.getTiming() != Timing.BEFORE_ADD && event.getTiming() != Timing.BEFORE_REMOVE + && event.getTiming() != Timing.BEFORE_SET) { if (event.getTiming() == Timing.COLLECTION_CHANGED) { event.setSource(event.getModel()); } else { @@ -160,8 +157,8 @@ */ public TableModelChangeSupportImpl(TableModel source) { TableModelAccessor accessor = (TableModelAccessor) source; - source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); eventTarget = new WeakReference<TableModel>(source); + source.getAdapter(Observable.class).addModelChangeListener(modelChangeListener); ((ObservableList<ColumnModel>) accessor.getModifiableColumns()).addListener(columnsCollectionChangeListener); ((ObservableList<IndexModel>) accessor.getModifiableIndexes()).addListener(indexesCollectionChangeListener); ((ObservableList<CheckConstraintModel>) accessor.getModifiableChecks()) @@ -169,36 +166,36 @@ } /** - * columnsのcollectionを監視するListenerに通知されたEventをTableModelの監視Listenerへ通知する。 + * checksのcollectionを監視するListenerに通知されたEventをTableModelの監視Listenerへ通知する。 * * @param event {@link ObservableCollectionChangeEvent} */ - public void fireColumnsCollectionChangeEvent(ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel> event) { + public void fireChecksCollectionChangeEvent( + ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel> event) { BeanDesc beanDesc = new BeanDescImpl(TableModelImpl.class); - event.setField(beanDesc.getField("columns")); + event.setField(beanDesc.getField("checks")); fireModelChange(event); } /** - * indexesのcollectionを監視するListenerに通知されたEventをTableModelの監視Listenerへ通知する。 + * columnsのcollectionを監視するListenerに通知されたEventをTableModelの監視Listenerへ通知する。 * * @param event {@link ObservableCollectionChangeEvent} */ - public void fireIndexesCollectionChangeEvent(ObservableCollectionChangeEvent<List<IndexModel>, IndexModel> event) { + public void fireColumnsCollectionChangeEvent(ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel> event) { BeanDesc beanDesc = new BeanDescImpl(TableModelImpl.class); - event.setField(beanDesc.getField("indexes")); + event.setField(beanDesc.getField("columns")); fireModelChange(event); } /** - * checksのcollectionを監視するListenerに通知されたEventをTableModelの監視Listenerへ通知する。 + * indexesのcollectionを監視するListenerに通知されたEventをTableModelの監視Listenerへ通知する。 * * @param event {@link ObservableCollectionChangeEvent} */ - public void fireChecksCollectionChangeEvent( - ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel> event) { + public void fireIndexesCollectionChangeEvent(ObservableCollectionChangeEvent<List<IndexModel>, IndexModel> event) { BeanDesc beanDesc = new BeanDescImpl(TableModelImpl.class); - event.setField(beanDesc.getField("checks")); + event.setField(beanDesc.getField("indexes")); fireModelChange(event); } }