Initial commit from SVN.
This commit is contained in:
@@ -0,0 +1,223 @@
|
||||
/*
|
||||
* Copyright (c) 2006,2009 Declarative Engineering LLC.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Declarative Engineering LLC
|
||||
* verson 1 which accompanies this distribution, and is available at
|
||||
* http://declarativeengineering.com/legal/DE_Developer_License_v1.txt
|
||||
*/
|
||||
package com.foundation.tcv.swt.server;
|
||||
|
||||
import com.common.util.LiteList;
|
||||
import com.foundation.tcv.swt.ICoolBar;
|
||||
import com.foundation.view.IAbstractContainer;
|
||||
import com.foundation.view.SingleAssociationContainer;
|
||||
import com.foundation.view.SingleResourceAssociation;
|
||||
|
||||
public class CoolBar extends Container implements ICoolBar {
|
||||
/** The collection of CoolItem instances contained by the cool bar. */
|
||||
private LiteList coolItems = new LiteList(10, 20);
|
||||
|
||||
/**
|
||||
* Encapsulates an item in the bar.
|
||||
*/
|
||||
public static class CoolItem extends AbstractComponent implements ICoolBar.ICoolItem {
|
||||
private Container container = null;
|
||||
/** The resource defining the visible state for the item. */
|
||||
private SingleResourceAssociation isVisible = new SingleResourceAssociation(this, this, getViewContext(), SingleResourceAssociation.TYPE_BOOLEAN, false, Boolean.TRUE);
|
||||
|
||||
/**
|
||||
* CoolItem constructor.
|
||||
* @param parent A composite control which will be the parent of the new instance (cannot be null).
|
||||
* @param name The unique component name.
|
||||
* @param style The style of control to construct.
|
||||
* @see #STYLE_DROP_DOWN
|
||||
*/
|
||||
public CoolItem(Container parent, String name, int style) {
|
||||
super(parent.getSessionViewController());
|
||||
container = parent;
|
||||
//Initialize the client component.//
|
||||
sendMessage(MESSAGE_INITIALIZE, new int[] {parent.getNumber(), style});
|
||||
((CoolBar) parent).addCoolItem(this);
|
||||
}//CoolItem()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.IAbstractComponent#getName()
|
||||
*/
|
||||
public String getName() {
|
||||
return "__CoolBarItem__";
|
||||
}//getName()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#internalViewInitialize()
|
||||
*/
|
||||
protected void internalViewInitialize() {
|
||||
super.internalViewInitialize();
|
||||
isVisible.initialize();
|
||||
}//internalViewInitialize()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#internalViewRelease()
|
||||
*/
|
||||
protected void internalViewRelease() {
|
||||
isVisible.release();
|
||||
super.internalViewRelease();
|
||||
}//internalViewRelease()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#internalViewRefresh()
|
||||
*/
|
||||
protected void internalViewRefresh() {
|
||||
internalViewRefreshIsVisible();
|
||||
sendMessage(MESSAGE_AUTO_SIZE, null);
|
||||
}//internalViewRefresh()//
|
||||
/**
|
||||
* Refreshes whether the component is visible based on the attribute value or if null the default flag value.
|
||||
*/
|
||||
protected void internalViewRefreshIsVisible() {
|
||||
if(isVisible.refresh()) {
|
||||
sendMessage(MESSAGE_IS_VISIBLE, isVisible.getValue() == null ? Boolean.TRUE : (Boolean) isVisible.getValue());
|
||||
}//if//
|
||||
}//internalViewRefreshIsVisible()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Component#internalOnValueChanged(com.foundation.view.SingleResourceAssociation)
|
||||
*/
|
||||
protected void internalOnValueChanged(SingleResourceAssociation resourceAssociation, int flags) {
|
||||
if(resourceAssociation == isVisible) {
|
||||
internalViewRefreshIsVisible();
|
||||
}//if//
|
||||
else {
|
||||
super.internalOnValueChanged(resourceAssociation, flags);
|
||||
}//else//
|
||||
}//internalOnValueChanged()//
|
||||
/**
|
||||
* Sets the association container used to access the visibility.
|
||||
* @param container The visibility association metadata.
|
||||
*/
|
||||
public void setIsVisibleAssociation(SingleAssociationContainer container) {
|
||||
verifyThread();
|
||||
this.isVisible.setAssociations(container);
|
||||
}//setIsVisibleAssociation()//
|
||||
/**
|
||||
* Sets whether the component is visible (by default if an attribute is bound to this value).
|
||||
* @param isVisible Whether the user can see the component.
|
||||
*/
|
||||
public void setIsVisible(boolean isVisible) {
|
||||
verifyThread();
|
||||
this.isVisible.setDefaultValue(isVisible ? Boolean.TRUE : Boolean.FALSE);
|
||||
}//setIsVisible()//
|
||||
/**
|
||||
* Sets the cool item initial size.
|
||||
* @param width
|
||||
* @param height
|
||||
*/
|
||||
public void setSize(int width, int height) {
|
||||
sendMessage(MESSAGE_SET_SIZE, new int[] {width, height});
|
||||
}//setSize()//
|
||||
/**
|
||||
* Sets the cool item minimum size.
|
||||
* @param width
|
||||
* @param height
|
||||
*/
|
||||
public void setMinimumSize(int width, int height) {
|
||||
sendMessage(MESSAGE_SET_MINIMUM_SIZE, new int[] {width, height});
|
||||
}//setMinimumSize()//
|
||||
/**
|
||||
* Sets the cool item preferred size.
|
||||
* @param width
|
||||
* @param height
|
||||
*/
|
||||
public void setPreferredSize(int width, int height) {
|
||||
sendMessage(MESSAGE_SET_PREFERRED_SIZE, new int[] {width, height});
|
||||
}//setPreferredSize()//
|
||||
/**
|
||||
* Sets the control used by the cool item.
|
||||
* @param control The cool item's control.
|
||||
*/
|
||||
public void setControl(Component control) {
|
||||
sendMessage(MESSAGE_SET_CONTROL, new int[] {control.getNumber()});
|
||||
}//setControl()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#getClientClassName()
|
||||
*/
|
||||
protected String getClientClassName() {
|
||||
return "com.foundation.tcv.swt.client.CoolBar$CoolItem";
|
||||
}//getClientClassName()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.IAbstractComponent#getContainer()
|
||||
*/
|
||||
public IAbstractContainer getContainer() {
|
||||
return container;
|
||||
}//getContainer()//
|
||||
}//CoolItem//
|
||||
/**
|
||||
* Button constructor.
|
||||
* @param parent A composite control which will be the parent of the new instance (cannot be null).
|
||||
* @param name The unique component name.
|
||||
* @param style The style of control to construct.
|
||||
* @see #STYLE_ARROW
|
||||
* @see #STYLE_CHECK
|
||||
* @see #STYLE_PUSH
|
||||
* @see #STYLE_RADIO
|
||||
* @see #STYLE_TOGGLE
|
||||
* @see #STYLE_FLAT
|
||||
* @see #STYLE_LEFT
|
||||
* @see #STYLE_RIGHT
|
||||
* @see #STYLE_CENTER
|
||||
* @see #STYLE_UP
|
||||
* @see #STYLE_DOWN
|
||||
*/
|
||||
public CoolBar(Container parent, String name, int style) {
|
||||
super(parent, name, style);
|
||||
|
||||
//Initialize the client component.//
|
||||
sendMessage(MESSAGE_INITIALIZE, new int[] {parent.getNumber(), style});
|
||||
}//CoolBar()//
|
||||
/**
|
||||
* Adds a cool item to the bar.
|
||||
* @param coolItem The item to be added.
|
||||
*/
|
||||
protected void addCoolItem(CoolItem coolItem) {
|
||||
coolItems.add(coolItem);
|
||||
|
||||
if(isInitialized()) {
|
||||
//TODO: Initialize the cool item.
|
||||
//Will the cool item's component already be initilialized?
|
||||
//Would this ever occur?
|
||||
}//if//
|
||||
}//addCoolItem()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#internalViewInitializeAll()
|
||||
*/
|
||||
protected void internalViewInitializeAll() {
|
||||
super.internalViewInitializeAll();
|
||||
|
||||
//Initialize all the cool items.//
|
||||
for(int index = 0; index < coolItems.getSize(); index++) {
|
||||
((CoolItem) coolItems.get(index)).internalViewInitialize();
|
||||
}//for//
|
||||
}//internalViewInitializeAll()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#internalViewReleaseAll()
|
||||
*/
|
||||
protected void internalViewReleaseAll() {
|
||||
//Release all the cool items.//
|
||||
for(int index = 0; index < coolItems.getSize(); index++) {
|
||||
((CoolItem) coolItems.get(index)).internalViewRelease();
|
||||
}//for//
|
||||
|
||||
super.internalViewReleaseAll();
|
||||
}//internalViewReleaseAll()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#internalViewRefreshAll()
|
||||
*/
|
||||
protected void internalViewRefreshAll() {
|
||||
super.internalViewRefreshAll();
|
||||
|
||||
//Refresh all the cool items.//
|
||||
for(int index = 0; index < coolItems.getSize(); index++) {
|
||||
((CoolItem) coolItems.get(index)).internalViewRefresh();
|
||||
}//for//
|
||||
}//internalViewRefreshAll()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.tcv.swt.server.AbstractComponent#getClientClassName()
|
||||
*/
|
||||
protected String getClientClassName() {
|
||||
return "com.foundation.tcv.swt.client.CoolBar";
|
||||
}//getClientClassName()//
|
||||
}//CoolBar//
|
||||
Reference in New Issue
Block a user