package com.c2kernel.gui.tabs; import java.awt.GridBagConstraints; import javax.swing.JTabbedPane; import com.c2kernel.collection.Aggregation; import com.c2kernel.collection.Collection; import com.c2kernel.collection.Dependency; import com.c2kernel.entity.proxy.EntityProxyObserver; import com.c2kernel.entity.proxy.ItemProxy; import com.c2kernel.entity.proxy.MemberSubscription; import com.c2kernel.gui.tabs.collection.AggregationView; import com.c2kernel.gui.tabs.collection.CollectionView; import com.c2kernel.gui.tabs.collection.DependencyView; import com.c2kernel.persistency.ClusterStorage; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; /** * @version $Revision: 1.36 $ $Date: 2005/10/06 06:51:15 $ * @author $Author: abranson $ */ public class CollectionPane extends EntityTabPane implements EntityProxyObserver> { JTabbedPane collTabs; public CollectionPane() { super("Collection", "Item Collection"); createLayout(); } @Override public void add(Collection contents) { Logger.msg(5, "Got "+contents.getName()+": "+contents.getClass().getName()); Logger.msg(7, "Looking for existing "+contents.getName()); CollectionView thisCollView = findTabForCollName(contents.getName()); if (thisCollView == null){ if (contents instanceof Aggregation) thisCollView = new AggregationView(); else if (contents instanceof Dependency) thisCollView = new DependencyView(); else { Logger.error("Collection type "+contents.getClass().getName()+" not known"); return; } Logger.msg(3, "Adding new "+thisCollView.getClass().getName()); thisCollView.setItem((ItemProxy)sourceEntity.getEntity()); collTabs.add(contents.getName(), thisCollView); } thisCollView.setCollection(contents); } @Override public void remove(String id) { } private CollectionView findTabForCollName(String collName) { CollectionView thisCollView = null; for (int i = 0; i < collTabs.getTabCount(); i++) { String tabName = collTabs.getTitleAt(i); if (tabName.equals(collName)) { thisCollView = (CollectionView)collTabs.getComponentAt(i); } } return thisCollView; } protected void createLayout() { initPanel(); // Add the collection tab pane getGridBagConstraints(); c.gridx = 0; c.gridy = 1; c.fill = GridBagConstraints.BOTH; c.weighty = 2.0; collTabs = new JTabbedPane(); gridbag.setConstraints(collTabs, c); add(collTabs); } @Override public void run() { Thread.currentThread().setName("Collection Loader"); sourceEntity.getEntity().subscribe(new MemberSubscription>(this, ClusterStorage.COLLECTION, true)); } @Override public void reload() { Gateway.getStorage().clearCache(sourceEntity.getSysKey(), ClusterStorage.COLLECTION); collTabs.removeAll(); initForEntity(sourceEntity); } @Override public void control(String control, String msg) { // TODO Auto-generated method stub } }