98 lines
3.3 KiB
Java
98 lines
3.3 KiB
Java
/*
|
|
* Copyright (c) 2005,2007 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.client;
|
|
|
|
import org.eclipse.swt.events.SelectionEvent;
|
|
import org.eclipse.swt.events.SelectionListener;
|
|
|
|
import com.common.debug.Debug;
|
|
import com.foundation.tcv.swt.ILink;
|
|
import com.foundation.tcv.view.ViewMessage;
|
|
|
|
public class Link extends Component implements ILink, SelectionListener {
|
|
/**
|
|
* Link constructor.
|
|
*/
|
|
public Link() {
|
|
super();
|
|
}//Link()//
|
|
/**
|
|
* Gets the SWT link that represents this link.
|
|
* @return The SWT link providing visualization for this link.
|
|
*/
|
|
public org.eclipse.swt.widgets.Link getSwtLink() {
|
|
return (org.eclipse.swt.widgets.Link) getSwtControl();
|
|
}//getSwtLink()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.tcv.swt.client.AbstractComponent#internalViewInitialize()
|
|
*/
|
|
protected void internalViewInitialize() {
|
|
getSwtLink().addSelectionListener(this);
|
|
super.internalViewInitialize();
|
|
}//internalViewInitialize()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.tcv.swt.client.AbstractComponent#internalViewRelease()
|
|
*/
|
|
protected void internalViewRelease() {
|
|
if(getSwtLink() != null && !getSwtLink().isDisposed()) {
|
|
getSwtLink().removeSelectionListener(this);
|
|
}//if//
|
|
|
|
super.internalViewRelease();
|
|
}//internalViewRelease()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.tcv.swt.client.AbstractComponent#internalProcessMessage(com.foundation.tcv.model.ViewMessage)
|
|
*/
|
|
public Object internalProcessMessage(ViewMessage viewMessage) {
|
|
Object retVal = null;
|
|
|
|
switch(viewMessage.getMessageNumber()) {
|
|
case MESSAGE_INITIALIZE: {
|
|
if(getSwtControl() == null) {
|
|
int[] data = (int[]) viewMessage.getMessageData();
|
|
int style = data[1];
|
|
|
|
//Link to the parent container.//
|
|
setContainer((Container) getComponent(data[0]));
|
|
getContainer().addComponent(this);
|
|
//Create the SWT widget.//
|
|
setSwtWidget(new org.eclipse.swt.widgets.Link(getContainer().getSwtParent(), style));
|
|
getSwtWidget().setData(this);
|
|
|
|
//If the container has already been initialized then force the parent to re-layout so that this component will appear.//
|
|
if(getContainer().isInitialized()) {
|
|
getContainer().getSwtComposite().layout(true, true);
|
|
}//if//
|
|
}//if//
|
|
break;
|
|
}//case//
|
|
case MESSAGE_SET_TEXT: {
|
|
getSwtLink().setText((String) viewMessage.getMessageData());
|
|
break;
|
|
}//case//
|
|
default: {
|
|
retVal = super.internalProcessMessage(viewMessage);
|
|
}//default//
|
|
}//switch//
|
|
|
|
return retVal;
|
|
}//internalProcessMessage()//
|
|
/* (non-Javadoc)
|
|
* @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
|
|
*/
|
|
public void widgetDefaultSelected(SelectionEvent e) {
|
|
//TODO: When is this called?//
|
|
Debug.log("Default Selected Called <Why?>");
|
|
}//widgetDefaultSelected()//
|
|
/* (non-Javadoc)
|
|
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
|
|
*/
|
|
public void widgetSelected(SelectionEvent e) {
|
|
sendRoundTripMessage(MESSAGE_VIEW_SYNCHRONIZE_SELECTION, null, null);
|
|
}//widgetSelected()//
|
|
}//Link// |