/* * 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 "); }//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//