Mercurial > projects > dwt-addons
diff dwtx/ui/internal/forms/MessageManager.d @ 76:e193036d82c9
Fix continue porting
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 24 May 2008 06:18:55 +0200 |
parents | 5d489b9f966c |
children | 4ac9946b9fb5 |
line wrap: on
line diff
--- a/dwtx/ui/internal/forms/MessageManager.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/MessageManager.d Sat May 24 06:18:55 2008 +0200 @@ -35,15 +35,16 @@ import tango.util.collection.ArraySeq; import tango.util.collection.HashMap; import tango.util.Convert; - +import tango.text.Text; +import tango.io.FileConst; /** * @see IMessageManager */ public class MessageManager : IMessageManager { - private static final DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER_; - private static final DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER(){ + private static DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER_; + private static DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER(){ if( DEFAULT_PREFIX_PROVIDER_ is null ){ synchronized(MessageManager.classinfo){ if( DEFAULT_PREFIX_PROVIDER_ is null ){ @@ -99,17 +100,22 @@ return standardInformation_; } - private static const String[] SINGLE_MESSAGE_SUMMARY_KEYS = [ + private static String[] SINGLE_MESSAGE_SUMMARY_KEYS; + private static String[] MULTIPLE_MESSAGE_SUMMARY_KEYS; + + static this(){ + SINGLE_MESSAGE_SUMMARY_KEYS = [ Messages.MessageManager_sMessageSummary, Messages.MessageManager_sMessageSummary, Messages.MessageManager_sWarningSummary, Messages.MessageManager_sErrorSummary ]; - private static const String[] MULTIPLE_MESSAGE_SUMMARY_KEYS = [ + MULTIPLE_MESSAGE_SUMMARY_KEYS = [ Messages.MessageManager_pMessageSummary, Messages.MessageManager_pMessageSummary, Messages.MessageManager_pWarningSummary, Messages.MessageManager_pErrorSummary ]; + } static class Message : IMessage { Control control; @@ -215,10 +221,11 @@ class ControlDecorator { private ControlDecoration decoration; - private ArraySeq!(Message) controlMessages = new ArraySeq!(Message); + private ArraySeq!(Object) controlMessages; private String prefix; this(Control control) { + controlMessages = new ArraySeq!(Object); this.decoration = new ControlDecoration(control, decorationPosition, scrolledForm.getBody()); } @@ -255,7 +262,9 @@ } void addAll(ArraySeq!(Object) target) { - target.addAll(controlMessages); + foreach( o; controlMessages ){ + target.append(o); + } } void addMessage(Object key, String text, Object data, int type) { @@ -277,7 +286,7 @@ } bool removeMessages() { - if (controlMessages.isEmpty()) + if (controlMessages.drained()) return false; controlMessages.clear(); if (isAutoUpdate()) @@ -286,7 +295,7 @@ } public void update() { - if (controlMessages.isEmpty()) { + if (controlMessages.drained()) { decoration.setDescriptionText(null); decoration.hide(); } else { @@ -343,7 +352,7 @@ if (dec is null) { dec = new ControlDecorator(control); - decorators.put(control, dec); + decorators.add(control, dec); } dec.addMessage(key, messageText, data, type); if (isAutoUpdate()) @@ -370,7 +379,7 @@ * @see dwtx.ui.forms.IMessageManager#removeMessages() */ public void removeMessages() { - if (!messages.isEmpty()) { + if (!messages.drained()) { messages.clear(); if (isAutoUpdate()) updateForm(); @@ -414,12 +423,12 @@ */ public void removeAllMessages() { bool needsUpdate = false; - for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) { - ControlDecorator control = cast(ControlDecorator) enm.nextElement(); + foreach( v; decorators ){ + ControlDecorator control = cast(ControlDecorator) v; if (control.removeMessages()) needsUpdate = true; } - if (!messages.isEmpty()) { + if (!messages.drained()) { messages.clear(); needsUpdate = true; } @@ -437,7 +446,7 @@ if (message is null) { message = new Message(key, messageText, type, data); message.prefix = prefix; - list.add(message); + list.append(message); } else { message.message = messageText; message.type = type; @@ -453,7 +462,7 @@ private Message findMessage(Object key, ArraySeq!(Object) list) { for (int i = 0; i < list.size(); i++) { Message message = cast(Message) list.get(i); - if (message.getKey().equals(key)) + if (message.getKey().opEquals(key)) return message; } return null; @@ -466,8 +475,8 @@ */ public void update() { // Update decorations - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( v; decorators ){ + ControlDecorator dec = cast(ControlDecorator) v; dec.update(); } // Update the form @@ -479,10 +488,12 @@ */ private void updateForm() { - ArrayList mergedList = new ArrayList(); - mergedList.addAll(messages); - for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) { - ControlDecorator dec = cast(ControlDecorator) enm.nextElement(); + ArraySeq!(Object) mergedList = new ArraySeq!(Object); + foreach( o; messages ){ + mergedList.append(o); + } + foreach( v; decorators ){ + ControlDecorator dec = cast(ControlDecorator) v; dec.addAll(mergedList); } update(mergedList); @@ -490,7 +501,7 @@ private void update(ArraySeq!(Object) mergedList) { pruneControlDecorators(); - if (scrolledForm.getForm().getHead().getBounds().height is 0 || mergedList.isEmpty() || mergedList is null) { + if (scrolledForm.getForm().getHead().getBounds().height is 0 || mergedList.drained() || mergedList is null) { scrolledForm.setMessage(null, IMessageProvider.NONE); return; } @@ -520,13 +531,14 @@ private static String getFullMessage(IMessage message) { if (message.getPrefix() is null) return message.getMessage(); - return message.getPrefix() + message.getMessage(); + return message.getPrefix() ~ message.getMessage(); } - private ArraySeq!(Message) createPeers(ArraySeq!(Message) messages) { - auto peers = new ArraySeq!(Message); + private ArraySeq!(Object) createPeers(ArraySeq!(Object) messages) { + auto peers = new ArraySeq!(Object); int maxType = 0; - foreach( message; messages ){ + foreach( o; messages ){ + auto message = cast(Message)o; if (message.type > maxType) { peers.clear(); maxType = message.type; @@ -538,32 +550,28 @@ } private String createDetails(ArraySeq!(Object) messages, bool excludePrefix) { - StringWriter sw = new StringWriter(); - PrintWriter out_ = new PrintWriter(sw); + auto txt = new tango.text.Text.Text!(char); for (int i = 0; i < messages.size(); i++) { if (i > 0) - out_.println(); + txt.append( FileConst.NewlineString ); IMessage m = cast(IMessage) messages.get(i); - out_.print(excludePrefix ? m.getMessage() : getFullMessage(m)); + txt.append(excludePrefix ? m.getMessage() : getFullMessage(m)); } - out_.flush(); - return sw.toString(); + return txt.toString(); } public static String createDetails(IMessage[] messages) { if (messages is null || messages.length is 0) return null; - StringWriter sw = new StringWriter(); - PrintWriter out_ = new PrintWriter(sw); + auto txt = new tango.text.Text.Text!(char); for (int i = 0; i < messages.length; i++) { if (i > 0) - out_.println(); - out_.print(getFullMessage(messages[i])); + txt.append( FileConst.NewlineString ); + txt.append(getFullMessage(messages[i])); } - out_.flush(); - return sw.toString(); + return txt.toString(); } /* @@ -576,10 +584,10 @@ } private void pruneControlDecorators() { - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( o; decorators.dup ){ + ControlDecorator dec = cast(ControlDecorator) o; if (dec.isDisposed()) - iter.remove(); + decorators.remove(o); } } @@ -599,8 +607,8 @@ */ public void setMessagePrefixProvider(IMessagePrefixProvider provider) { this.prefixProvider = provider; - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( o; decorators ){ + ControlDecorator dec = cast(ControlDecorator) o; dec.updatePrefix(); } } @@ -621,8 +629,8 @@ */ public void setDecorationPosition(int position) { this.decorationPosition = position; - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( o; decorators ){ + ControlDecorator dec = cast(ControlDecorator) o; dec.updatePosition(); } }