Mercurial > projects > dwt-addons
diff dwtx/ui/internal/forms/MessageManager.d @ 104:04b47443bb01
Reworked the collection uses to make use of a wrapper collection that is compatible to the Java Collections.
These new wrappers now use the tango.util.containers instead of the tango.util.collections.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 07 Aug 2008 15:01:33 +0200 |
parents | 1088ca33d3e0 |
children |
line wrap: on
line diff
--- a/dwtx/ui/internal/forms/MessageManager.d Sun Aug 03 17:01:51 2008 +0200 +++ b/dwtx/ui/internal/forms/MessageManager.d Thu Aug 07 15:01:33 2008 +0200 @@ -31,9 +31,8 @@ import dwtx.ui.forms.widgets.ScrolledForm; import dwt.dwthelper.utils; +import dwtx.dwtxhelper.Collection; -import tango.util.collection.ArraySeq; -import tango.util.collection.HashMap; import tango.util.Convert; import tango.text.Text; import tango.io.model.IFile; @@ -55,8 +54,8 @@ } return DEFAULT_PREFIX_PROVIDER_; } - private ArraySeq!(Object) messages; - private HashMap!(Object,Object) decorators; + private ArrayList messages; + private Hashtable decorators; private bool autoUpdate = true; private ScrolledForm scrolledForm; private IMessagePrefixProvider prefixProvider; @@ -237,11 +236,11 @@ class ControlDecorator { private ControlDecoration decoration; - private ArraySeq!(Object) controlMessages; + private ArrayList controlMessages; private String prefix; this(Control control) { - controlMessages = new ArraySeq!(Object); + controlMessages = new ArrayList(); this.decoration = new ControlDecoration(control, decorationPosition, scrolledForm.getBody()); } @@ -277,10 +276,8 @@ prefix = ""; //$NON-NLS-1$ } - void addAll(ArraySeq!(Object) target) { - foreach( o; controlMessages ){ - target.append(o); - } + void addAll(ArrayList target) { + target.addAll(controlMessages); } void addMessage(Object key, String text, Object data, int type) { @@ -302,7 +299,7 @@ } bool removeMessages() { - if (controlMessages.drained()) + if (controlMessages.isEmpty()) return false; controlMessages.clear(); if (isAutoUpdate()) @@ -311,11 +308,11 @@ } public void update() { - if (controlMessages.drained()) { + if (controlMessages.isEmpty()) { decoration.setDescriptionText(null); decoration.hide(); } else { - auto peers = createPeers(controlMessages); + ArrayList peers = createPeers(controlMessages); int type = (cast(IMessage) peers.get(0)).getMessageType(); String description = createDetails(createPeers(peers), true); if (type is IMessageProvider.ERROR) @@ -339,8 +336,8 @@ */ public this(ScrolledForm scrolledForm) { prefixProvider = DEFAULT_PREFIX_PROVIDER; - messages = new ArraySeq!(Object); - decorators = new HashMap!(Object,Object); + messages = new ArrayList(); + decorators = new Hashtable(); this.scrolledForm = scrolledForm; } @@ -368,7 +365,7 @@ if (dec is null) { dec = new ControlDecorator(control); - decorators.add(control, dec); + decorators.put(control, dec); } dec.addMessage(key, messageText, data, type); if (isAutoUpdate()) @@ -395,7 +392,7 @@ * @see dwtx.ui.forms.IMessageManager#removeMessages() */ public void removeMessages() { - if (!messages.drained()) { + if (!messages.isEmpty()) { messages.clear(); if (isAutoUpdate()) updateForm(); @@ -439,12 +436,12 @@ */ public void removeAllMessages() { bool needsUpdate = false; - foreach( v; decorators ){ - ControlDecorator control = cast(ControlDecorator) v; + for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) { + ControlDecorator control = cast(ControlDecorator) enm.nextElement(); if (control.removeMessages()) needsUpdate = true; } - if (!messages.drained()) { + if (!messages.isEmpty()) { messages.clear(); needsUpdate = true; } @@ -457,12 +454,12 @@ */ private Message addMessage(String prefix, Object key, String messageText, - Object data, int type, ArraySeq!(Object) list) { + Object data, int type, ArrayList list) { Message message = findMessage(key, list); if (message is null) { message = new Message(key, messageText, type, data); message.prefix = prefix; - list.append(message); + list.add(message); } else { message.message = messageText; message.type = type; @@ -475,7 +472,7 @@ * Finds the message with the provided key in the provided list. */ - private Message findMessage(Object key, ArraySeq!(Object) list) { + private Message findMessage(Object key, ArrayList list) { for (int i = 0; i < list.size(); i++) { Message message = cast(Message) list.get(i); if (message.getKey().opEquals(key)) @@ -491,8 +488,8 @@ */ public void update() { // Update decorations - foreach( v; decorators ){ - ControlDecorator dec = cast(ControlDecorator) v; + for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { + ControlDecorator dec = cast(ControlDecorator) iter.next(); dec.update(); } // Update the form @@ -504,24 +501,22 @@ */ private void updateForm() { - ArraySeq!(Object) mergedList = new ArraySeq!(Object); - foreach( o; messages ){ - mergedList.append(o); - } - foreach( v; decorators ){ - ControlDecorator dec = cast(ControlDecorator) v; + ArrayList mergedList = new ArrayList(); + mergedList.addAll(messages); + for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) { + ControlDecorator dec = cast(ControlDecorator) enm.nextElement(); dec.addAll(mergedList); } update(mergedList); } - private void update(ArraySeq!(Object) mergedList) { + private void update(ArrayList mergedList) { pruneControlDecorators(); - if (scrolledForm.getForm().getHead().getBounds().height is 0 || mergedList.drained() || mergedList is null) { + if (scrolledForm.getForm().getHead().getBounds().height is 0 || mergedList.isEmpty() || mergedList is null) { scrolledForm.setMessage(null, IMessageProvider.NONE); return; } - auto peers = createPeers(mergedList); + ArrayList peers = createPeers(mergedList); int maxType = (cast(IMessage) peers.get(0)).getMessageType(); String messageText; IMessage[] array = arraycast!(IMessage)( peers @@ -550,22 +545,22 @@ return message.getPrefix() ~ message.getMessage(); } - private ArraySeq!(Object) createPeers(ArraySeq!(Object) messages) { - auto peers = new ArraySeq!(Object); + private ArrayList createPeers(ArrayList messages) { + ArrayList peers = new ArrayList(); int maxType = 0; - foreach( o; messages ){ - auto message = cast(Message)o; + for (int i = 0; i < messages.size(); i++) { + Message message = cast(Message) messages.get(i); if (message.type > maxType) { peers.clear(); maxType = message.type; } if (message.type is maxType) - peers.append(message); + peers.add(message); } return peers; } - private String createDetails(ArraySeq!(Object) messages, bool excludePrefix) { + private String createDetails(ArrayList messages, bool excludePrefix) { auto txt = new tango.text.Text.Text!(char); for (int i = 0; i < messages.size(); i++) { @@ -600,10 +595,10 @@ } private void pruneControlDecorators() { - foreach( o; decorators.dup ){ - ControlDecorator dec = cast(ControlDecorator) o; + for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { + ControlDecorator dec = cast(ControlDecorator) iter.next(); if (dec.isDisposed()) - decorators.remove(o); + iter.remove(); } } @@ -623,8 +618,8 @@ */ public void setMessagePrefixProvider(IMessagePrefixProvider provider) { this.prefixProvider = provider; - foreach( o; decorators ){ - ControlDecorator dec = cast(ControlDecorator) o; + for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { + ControlDecorator dec = cast(ControlDecorator) iter.next(); dec.updatePrefix(); } } @@ -645,8 +640,8 @@ */ public void setDecorationPosition(int position) { this.decorationPosition = position; - foreach( o; decorators ){ - ControlDecorator dec = cast(ControlDecorator) o; + for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { + ControlDecorator dec = cast(ControlDecorator) iter.next(); dec.updatePosition(); } }