/** * */ package com.xored.glance.ui.utils; import com.xored.glance.ui.sources.ITextBlock; import com.xored.glance.ui.sources.ITextBlockListener; import com.xored.glance.ui.sources.TextChangedEvent; import org.eclipse.core.runtime.ListenerList; /** * @author Yuri Strot */ public class UITextBlock implements ITextBlock, ITextBlockListener { private ListenerList listeners = new ListenerList(); private ITextBlock block; private String text; public UITextBlock(ITextBlock block) { this.block = block; text = block.getText(); block.addTextBlockListener(this); } /* * (non-Javadoc) * * @see com.xored.glance.ui.sources.ITextBlock#addTextBlockListener(com.xored * .glance.ui.sources.ITextBlockListener) */ @Override public void addTextBlockListener(ITextBlockListener listener) { listeners.add(listener); } /* * (non-Javadoc) * * @see java.lang.Comparable#compareTo(java.lang.Object) */ @Override public int compareTo(ITextBlock block) { return this.block.compareTo(((UITextBlock) block).block); } public void dispose() { block.removeTextBlockListener(this); } /** * @return the block */ public ITextBlock getBlock() { return block; } /* * (non-Javadoc) * * @see com.xored.glance.ui.sources.ITextBlock#getText() */ @Override public String getText() { return text; } /* * (non-Javadoc) * * @see com.xored.glance.ui.sources.ITextBlock#removeTextBlockListener(com.xored * .glance.ui.sources.ITextBlockListener) */ @Override public void removeTextBlockListener(ITextBlockListener listener) { listeners.remove(listener); } /* * (non-Javadoc) * * @see com.xored.glance.ui.sources.ITextBlockListener#textChanged(com.xored. * glance.ui.sources.TextChangedEvent) */ @Override public void textChanged(TextChangedEvent event) { text = block.getText(); Object[] objects = listeners.getListeners(); for (Object object : objects) { ITextBlockListener listener = (ITextBlockListener) object; listener.textChanged(event); } } @Override public String toString() { return "UI(" + block + ")"; } }