/** * */ package org.concord.otrunk.view; import javax.swing.JComponent; import org.concord.framework.otrunk.OTObject; import org.concord.framework.otrunk.view.AbstractOTJComponentView; import org.concord.framework.otrunk.view.OTViewEntry; import org.concord.framework.otrunk.view.OTViewFactory; /** * @author scott * */ public abstract class AbstractOTJComponentContainerView extends AbstractOTJComponentView { private OTJComponentContainerHelper containerHelper; protected String myMode; /** * @see org.concord.framework.otrunk.view.OTJComponentView#viewClosed() */ public void viewClosed() { super.viewClosed(); removeAllSubViews(); } public void setMode(String mode){ myMode = mode; } public String getMode(){ return myMode; } protected OTViewContainerPanel createViewContainerPanel() { return getContainerHelper().createViewContainerPanel(); } public JComponent createSubViewComponent(OTObject otObject) { return createSubViewComponent(otObject, false); } public JComponent createSubViewComponent(OTObject otObject, boolean useScrollPane) { return createSubViewComponent(otObject, useScrollPane, null); } public JComponent createSubViewComponent(OTObject otObject, boolean useScrollPane, OTViewEntry viewEntry) { return createSubViewComponent(otObject, useScrollPane, viewEntry, false, null); } /** * Creates a sub view, and returns the view container JComponent * * If isTopLevelContainer is true and a ViewFactory is passed in, the new view container * will be top level, and so will contain a shared service for all its descendant views. */ public JComponent createSubViewComponent(OTObject otObject, boolean useScrollPane, OTViewEntry viewEntry, boolean isTopLevelContainer, OTViewFactory otViewFactory) { OTViewContainerPanel otObjectPanel = createViewContainerPanel(); otObjectPanel.setUseScrollPane(useScrollPane); otObjectPanel.setTopLevelContainer(isTopLevelContainer); if (otViewFactory != null) otObjectPanel.setOTViewFactory(otViewFactory); // The OTViewContainerPanel automatically handles the OTViewChild object otObjectPanel.setCurrentObject(otObject, viewEntry); // set parent of new viewcontainer to this viewcontainer otObjectPanel.setParentContainer(viewContainer); return otObjectPanel; } protected void removeAllSubViews() { if(containerHelper != null){ containerHelper.removeAllSubViews(); } } protected OTJComponentContainerHelper getContainerHelper() { if(containerHelper == null){ containerHelper = new OTJComponentContainerHelper(getFrameManager(), getJComponentService(), getMode()); } return containerHelper; } protected void setSubViewAutoRequestFocus(boolean autoRequestFocus) { getContainerHelper().setAutoRequestFocus(autoRequestFocus); } protected void setSubViewUseScrollPane(boolean useScrollPane) { getContainerHelper().setUseScrollPane(useScrollPane); } protected void setSubViewMode(String viewMode) { getContainerHelper().setViewMode(viewMode); } }