home *** CD-ROM | disk | FTP | other *** search
Java Source | 1998-03-18 | 4.5 KB | 159 lines |
- package symantec.itools.db.beans.binding;
- import java.awt.Dimension;
- import java.util.Vector;
- import symantec.itools.db.beans.binding.databus.*;
- public class MutableCollectionItem implements MutableCollectionAccess,DataItemChangedListener,DataItemAddition
- {
- private String Name;
- public Vector dataItems=new Vector();
- private Vector DIChangedListeners =new Vector();
- private DataItemCursor Cursor=new DataItemCursor();
- private int StatusFlag=0;
- public MutableCollectionItem()
- {
- }
- public MutableCollectionItem(String name)
- {
- this();
- Name=name;
- }
- /**
- * Sets the Name of the Data Input
- * Format: TableName@column1,column2%numberOfRow
- * @param name. The name of the Data Input.
- */
- public void setName(String name)
- {
- Name=name;
- }
-
-
- /**
- * Gets the Name of the Data Input
- * Format: TableName@column1,column2%numberOfRow
- * @return String. The name of the Data Input.
- */
- public String getName()
- {
- return(Name);
- }
- public void addDataItem(DataItem item)
- {
- dataItems.addElement(item);
- notifySizeChanged();
- }
-
- public void insertBeforeCursor(DataCursor where, DataItem item)
- {
- DataItem DI=where.getCurrentItem();
- int position=dataItems.indexOf(DI);
- if (position>-1){
- try{
- dataItems.insertElementAt(item,position);
- ((DataItem)item).addDataItemChangedListener((DataItemChangedListener)this);
- }
- catch( ArrayIndexOutOfBoundsException e){}
- }
- notifySizeChanged();
-
- }
-
- public void insertAfterCursor(DataCursor where, DataItem item)
- {
- DataItem DI=where.getCurrentItem();
- int position=dataItems.indexOf(DI);
- if (position>-1){
- try{
- dataItems.insertElementAt(item,position+1);
- ((DataItem)item).addDataItemChangedListener((DataItemChangedListener)this);
- }
- catch( ArrayIndexOutOfBoundsException e){}
- }
- notifySizeChanged();
- }
-
- public void removeDataItem(DataItem item)
- {
- dataItems.removeElement(item);
- notifySizeChanged();
- }
-
- public void removeAtCursor(DataCursor cursor)
- {
- DataItem DI=cursor.getCurrentItem();
- dataItems.removeElement(DI);
- notifySizeChanged();
- }
-
- public DataCursor getCursor()
- {
- return new DataItemCursor(dataItems);
- }
-
- public void addDataItemChangedListener(DataItemChangedListener dcl){
- DIChangedListeners.addElement(dcl);
- }
- public void removeDataItemChangedListener(DataItemChangedListener dcl){
- DIChangedListeners.removeElement(dcl);
- }
- public void notifyDataItemChanged(DataItemChangedEvent event)
- {
- Vector l;
- try
- {
- DataItemChangedEvent dce=new DataItemChangedEvent(1,this);
- synchronized(this)
- {
- l=(Vector)DIChangedListeners.clone();
- }
- for(int i=0;i<l.size();i++)
- {
- ((DataItemChangedListener)l.elementAt(i)).notifyDataItemChanged(dce);
- }
- }
- catch(InvalidType e){System.out.println("invalidtype");}
-
- cleanUp();
-
- }
- public void cleanUp()
- {
- for(int i=0;i<dataItems.size();i++)
- {
- Object DI=dataItems.elementAt(i);
- if(DI instanceof DataItemAddition && ((DataItemAddition)DI).getStatusFlag()!=DataItemAddition.EXISTING)
- ((DataItemAddition)DI).cleanUp();
- }
- setStatusFlag(DataItemAddition.EXISTING);
-
- }
- public void setStatusFlag(int i)
- {
- StatusFlag=i;
- }
- public int getStatusFlag()
- {
- return StatusFlag;
- }
-
- public void notifySizeChanged()
- {
- Vector l;
- try
- {
- DataItemChangedEvent dce=new DataItemChangedEvent(0,this);
- synchronized(this)
- {
- l=(Vector)DIChangedListeners.clone();
- }
- for(int i=0;i<l.size();i++)
- {
- ((DataItemChangedListener)l.elementAt(i)).notifyDataItemChanged(dce);
- }
- }
- catch(InvalidType e){System.out.println("invalidtype");}
- }
-
-
-
- }