Initial commit from SVN.
This commit is contained in:
150
Foundation SWT/src/com/foundation/view/swt/CardLayout.java
Normal file
150
Foundation SWT/src/com/foundation/view/swt/CardLayout.java
Normal file
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* Copyright (c) 2007,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.view.swt;
|
||||
|
||||
import com.foundation.view.MultiResourceAssociation;
|
||||
import com.foundation.view.ResourceAssociation;
|
||||
import com.foundation.view.SingleAssociationContainer;
|
||||
import com.foundation.view.SingleResourceAssociation;
|
||||
import com.foundation.view.VariableResourceAssociation;
|
||||
|
||||
public class CardLayout extends Layout {
|
||||
/** The layout's top index resource. */
|
||||
private VariableResourceAssociation topIndex = new VariableResourceAssociation(getContainer(), this, getViewContext(), SingleResourceAssociation.TYPE_INTEGER, false, new Integer(0));
|
||||
/** The top and bottom margins. */
|
||||
public int marginHeight = 0;
|
||||
/** The left and right margins. */
|
||||
public int marginWidth = 0;
|
||||
/**
|
||||
* CardLayout constructor.
|
||||
* @param container The container that is using the layout.
|
||||
*/
|
||||
public CardLayout(IAbstractSwtContainer container) {
|
||||
super(container);
|
||||
}//CardLayout()//
|
||||
/**
|
||||
* CardLayout constructor.
|
||||
* @param container The container that is using the layout.
|
||||
*/
|
||||
public CardLayout(ICellContainer container) {
|
||||
super(container);
|
||||
}//CardLayout()//
|
||||
/**
|
||||
* Changes the top index for an optional row object.
|
||||
* @param rowObject The optional row object.
|
||||
* @param index The new top index.
|
||||
*/
|
||||
protected void changeTopIndex(Object rowObject, final int index) {
|
||||
applyChanges(null, new IChangeHandler() {
|
||||
public void applyChanges(org.eclipse.swt.widgets.Composite composite) {
|
||||
org.eclipse.swt.widgets.Layout layout = composite.getLayout();
|
||||
|
||||
if(layout instanceof com.foundation.view.swt.layout.CardLayout) {
|
||||
((com.foundation.view.swt.layout.CardLayout) layout).topIndex = index;
|
||||
composite.layout(true, false);
|
||||
}//if//
|
||||
}//applyChanges()//
|
||||
});
|
||||
}//changeTopIndex()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#createLayout(java.lang.Object)
|
||||
*/
|
||||
public org.eclipse.swt.widgets.Layout createLayout(Object rowObject) {
|
||||
com.foundation.view.swt.layout.CardLayout result = new com.foundation.view.swt.layout.CardLayout();
|
||||
|
||||
result.marginHeight = marginHeight;
|
||||
result.marginWidth = marginWidth;
|
||||
|
||||
if(isInitialized()) {
|
||||
changeTopIndex(null, topIndex.getValue(rowObject) == null ? 0 : ((Integer) topIndex.getValue(rowObject)).intValue());
|
||||
}//if//
|
||||
|
||||
return result;
|
||||
}//createLayout()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#initialize()
|
||||
*/
|
||||
public void initialize() {
|
||||
topIndex.initialize();
|
||||
}//initialize()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#refresh()
|
||||
*/
|
||||
public void refresh() {
|
||||
refreshTopIndex();
|
||||
}//refresh()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#synchronize()
|
||||
*/
|
||||
public void synchronize() {
|
||||
}//synchronize()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#release()
|
||||
*/
|
||||
public void release() {
|
||||
topIndex.release();
|
||||
}//release()//
|
||||
/**
|
||||
* Refreshes the top index assocation.
|
||||
*/
|
||||
protected void refreshTopIndex() {
|
||||
if(topIndex.refresh(null)) {
|
||||
changeTopIndex(null, topIndex.getValue(null) == null ? 0 : ((Integer) topIndex.getValue(null)).intValue());
|
||||
//layoutContainer(null, true, false);
|
||||
}//if//
|
||||
}//refreshTopIndex()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#onValueChanged(com.foundation.view.ResourceAssociation, boolean)
|
||||
*/
|
||||
public void onValueChanged(ResourceAssociation resourceAssociation, int flags) {
|
||||
if(topIndex.hasAssociation((SingleResourceAssociation) resourceAssociation)) {
|
||||
if(topIndex.refresh(null)) {
|
||||
changeTopIndex(null, topIndex.getValue(null) == null ? 0 : ((Integer) topIndex.getValue(null)).intValue());
|
||||
//layoutContainer(null, true, false);
|
||||
}//if//
|
||||
}//if//
|
||||
else {
|
||||
super.onValueChanged(resourceAssociation, flags);
|
||||
}//else//
|
||||
}//onValueChanged()//
|
||||
/* (non-Javadoc)
|
||||
* @see com.foundation.view.swt.Layout#onValueChanged(com.foundation.view.ResourceAssociation, java.lang.Object, boolean)
|
||||
*/
|
||||
public void onValueChanged(ResourceAssociation resourceAssociation, Object alteredItem, Object data, boolean isUpdate) {
|
||||
if(topIndex.hasAssociation((MultiResourceAssociation) resourceAssociation)) {
|
||||
if(topIndex.refresh(alteredItem)) {
|
||||
changeTopIndex(null, topIndex.getValue(alteredItem) == null ? 0 : ((Integer) topIndex.getValue(alteredItem)).intValue());
|
||||
//layoutContainer(null, true, false);
|
||||
}//if//
|
||||
}//if//
|
||||
else {
|
||||
super.onValueChanged(resourceAssociation, alteredItem, data, isUpdate);
|
||||
}//else//
|
||||
}//onValueChanged()//
|
||||
/**
|
||||
* Sets the layout margin width.
|
||||
* @param marginWidth The layout margin width.
|
||||
*/
|
||||
public void setMarginWidth(int marginWidth) {
|
||||
this.marginWidth = marginWidth;
|
||||
}//setMarginWidth()//
|
||||
/**
|
||||
* Sets the layout margin height.
|
||||
* @param marginHeight The layout margin height.
|
||||
*/
|
||||
public void setMarginHeight(int marginHeight) {
|
||||
this.marginHeight = marginHeight;
|
||||
}//setMarginHeight()//
|
||||
/**
|
||||
* Sets an association container used to access the text.
|
||||
* @param container The text association metadata.
|
||||
*/
|
||||
public void setTopIndexAssociation(SingleAssociationContainer container) {
|
||||
this.topIndex.setAssociations(container);
|
||||
}//setTextAssociation()//
|
||||
}//CardLayout//
|
||||
Reference in New Issue
Block a user