changeset 168:cef27f663573

jface.text ...
author Frank Benoit <benoit@tionex.de>
date Tue, 09 Sep 2008 17:44:11 +0200
parents 862b05e0334a
children 3b8f773f35e4
files dwtx/jface/internal/text/link/contentassist/AdditionalInfoController2.d dwtx/jface/internal/text/link/contentassist/ContentAssistant2.d dwtx/jface/text/ITextOperationTarget.d dwtx/jface/text/ITextViewer.d dwtx/jface/text/contentassist/AdditionalInfoController.d dwtx/jface/text/contentassist/ContentAssistant.d dwtx/jface/text/source/ISourceViewer.d dwtx/jface/text/templates/persistence/TemplatePersistenceMessages.properties dwtx/jface/text/templates/persistence/TemplateReaderWriter.d res/dwtx.jface.text.templates.persistence.TemplatePersistenceMessages.properties
diffstat 10 files changed, 137 insertions(+), 420 deletions(-) [+]
line wrap: on
line diff
--- a/dwtx/jface/internal/text/link/contentassist/AdditionalInfoController2.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/internal/text/link/contentassist/AdditionalInfoController2.d	Tue Sep 09 17:44:11 2008 +0200
@@ -26,6 +26,8 @@
 
 import dwt.dwthelper.utils;
 import dwtx.dwtxhelper.JThread;
+import tango.core.sync.Mutex;
+import tango.core.sync.Condition;
 
 import dwt.events.SelectionEvent;
 import dwt.events.SelectionListener;
@@ -76,11 +78,13 @@
     /** Indicates whether the display delay has been reset */
     private bool fIsReset= false;
     /** Object to synchronize display thread and table selection changes */
-    private const Object fMutex;
+    private const Mutex     fMutex;
+    private const Condition fMutex_cond;
     /** Thread access lock. */
     private const Object fThreadAccess;
     /** Object to synchronize initial display of additional info */
-    private Object fStartSignal;
+    private Mutex     fStartSignal;
+    private Condition fStartSignal_cond;
     /** The table selection listener */
     private SelectionListener fSelectionListener;
     /** The delay after which additional information is displayed */
@@ -96,7 +100,8 @@
     this(IInformationControlCreator creator, int delay) {
         fSelectionListener= new TableSelectionListener();
         fThreadAccess= new Object();
-        fMutex= new Object();
+        fMutex= new Mutex();
+        fMutex_cond= new Condition(fMutex);
         super(creator);
         fDelay= delay;
         setAnchor(ANCHOR_RIGHT);
@@ -123,12 +128,13 @@
                 fThread.interrupt();
             fThread= new JThread(this, ContentAssistMessages.getString("InfoPopup.info_delay_timer_name")); //$NON-NLS-1$
 
-            fStartSignal= new Object();
+            fStartSignal= new Mutex();
+            fStartSignal_cond= new Condition(fStartSignal);
             synchronized (fStartSignal) {
                 fThread.start();
                 try {
                     // wait until thread is ready
-                    fStartSignal.wait();
+                    fStartSignal_cond.wait();
                 } catch (InterruptedException x) {
                 }
             }
@@ -166,18 +172,19 @@
 
                     if (fStartSignal !is null) {
                         synchronized (fStartSignal) {
-                            fStartSignal.notifyAll();
+                            fStartSignal_cond.notifyAll();
                             fStartSignal= null;
+                            fStartSignal_cond = null;
                         }
                     }
 
                     // Wait for a selection event to occur.
-                    fMutex.wait();
+                    fMutex_cond.wait();
 
                     while (true) {
                         fIsReset= false;
                         // Delay before showing the popup.
-                        fMutex.wait(fDelay);
+                        fMutex_cond.wait(fDelay);
                         if (!fIsReset)
                             break;
                     }
@@ -211,7 +218,7 @@
         if (fProposalTable !is null && !fProposalTable.isDisposed() && fProposalTable.isVisible()) {
             synchronized (fMutex) {
                 fIsReset= true;
-                fMutex.notifyAll();
+                fMutex_cond.notifyAll();
             }
         }
     }
--- a/dwtx/jface/internal/text/link/contentassist/ContentAssistant2.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/internal/text/link/contentassist/ContentAssistant2.d	Tue Sep 09 17:44:11 2008 +0200
@@ -25,6 +25,8 @@
 import dwt.dwthelper.utils;
 import dwtx.dwtxhelper.Collection;
 import dwtx.dwtxhelper.JThread;
+import tango.core.sync.Mutex;
+import tango.core.sync.Condition;
 
 import dwt.DWT;
 import dwt.DWTError;
@@ -232,28 +234,31 @@
 
         private JThread fThread;
         private bool fIsReset= false;
-        private Object fMutex= new Object();
+        private Mutex     fMutex;
+        private Condition fMutex_cond;
         private int fShowStyle;
 
         private const static int SHOW_PROPOSALS= 1;
         private const static int SHOW_CONTEXT_INFO= 2;
 
         protected this() {
+            fMutex = new Mutex();
+            fMutex_cond = new Condition(fMutex);
         }
 
         protected void start(int showStyle) {
             fShowStyle= showStyle;
-            fThread= new Thread(&run);
-            fThread.name = ContentAssistMessages.getString("ContentAssistant.assist_delay_timer_name"); //$NON-NLS-1$
+            fThread= new JThread(this);
+            fThread.setName( ContentAssistMessages.getString("ContentAssistant.assist_delay_timer_name")); //$NON-NLS-1$
             fThread.start();
         }
 
-        public void run() {
+        public override void run() {
             try {
                 while (true) {
                     synchronized (fMutex) {
                         if (fAutoActivationDelay !is 0)
-                            fMutex.wait(fAutoActivationDelay);
+                            fMutex_cond.wait(fAutoActivationDelay);
                         if (fIsReset) {
                             fIsReset= false;
                             continue;
@@ -271,12 +276,12 @@
             synchronized (fMutex) {
                 fShowStyle= showStyle;
                 fIsReset= true;
-                fMutex.notifyAll();
+                fMutex_cond.notifyAll();
             }
         }
 
         protected void stop() {
-            Thread threadToStop= fThread;
+            JThread threadToStop= fThread;
             if (threadToStop !is null)
                 threadToStop.interrupt();
         }
@@ -357,8 +362,13 @@
         public const static int LAYOUT_CONTEXT_INFO_POPUP= 2;
 
         int fContextType= LAYOUT_CONTEXT_SELECTOR;
-        Shell[] fShells= new Shell[3];
-        Object[] fPopups= new Object[3];
+        Shell[] fShells;
+        Object[] fPopups;
+
+        this(){
+            fShells= new Shell[3];
+            fPopups= new Object[3];
+        }
 
         protected void add(Object popup, Shell shell, int type, int offset) {
             Assert.isNotNull(popup);
@@ -632,7 +642,7 @@
          * @see VerifyKeyListener#verifyKey(dwt.events.VerifyEvent)
          */
         public void verifyKey(VerifyEvent e) {
-            IContentAssistListener2[] listeners= arraycast!(IContentAssistListener2)( fListeners.clone());
+            IContentAssistListener2[] listeners= arraycast!(IContentAssistListener2)( fListeners.dup );
             for (int i= 0; i < listeners.length; i++) {
                 if (listeners[i] !is null) {
                     if (!listeners[i].verifyKey(e) || !e.doit)
@@ -648,7 +658,7 @@
 
             installKeyListener();
 
-            IContentAssistListener2[] listeners= arraycast!(IContentAssistListener2)(fListeners.clone());
+            IContentAssistListener2[] listeners= arraycast!(IContentAssistListener2)( fListeners.dup );
             for (int i= 0; i < listeners.length; i++) {
                 if (listeners[i] !is null) {
                     listeners[i].processEvent(event);
@@ -661,9 +671,9 @@
 
 
     // Content-Assist Listener types
-    final static int CONTEXT_SELECTOR= 0;
-    final static int PROPOSAL_SELECTOR= 1;
-    final static int CONTEXT_INFO_POPUP= 2;
+    const static int CONTEXT_SELECTOR= 0;
+    const static int PROPOSAL_SELECTOR= 1;
+    const static int CONTEXT_INFO_POPUP= 2;
 
     /**
      * The popup priority: &gt; info pop-ups, &lt; standard content assist.
@@ -701,11 +711,11 @@
     private ContextInformationPopup2 fContextInfoPopup;
 
     private bool fKeyListenerHooked= false;
-    private IContentAssistListener2[] fListeners= new IContentAssistListener2[4];
+    private IContentAssistListener2[] fListeners;
     private int fCompletionPosition;
     private String[] fProposalStrings;
     private ICompletionProposal[] fProposals;
-    private const List fProposalListeners= new ArrayList();
+    private const List fProposalListeners;
 
     /**
      * Tells whether colored label support is enabled.
@@ -722,6 +732,9 @@
      * is activated after a 500 ms delay. It uses the default partitioning.
      */
     public this() {
+        fListeners= new IContentAssistListener2[4];
+        fProposalListeners= new ArrayList();
+
         setContextInformationPopupOrientation(CONTEXT_INFO_ABOVE);
         setInformationControlCreator(getInformationControlCreator());
 
@@ -786,7 +799,7 @@
         if (processor is null)
             fProcessors.remove(contentType);
         else
-            fProcessors.put(contentType, processor);
+            fProcessors.put(contentType, cast(Object)processor);
     }
 
     /*
@@ -1014,7 +1027,7 @@
      * @see IContentAssist#install
      */
     public void install(ITextViewer textViewer) {
-        Assert.isNotNull(textViewer);
+        Assert.isNotNull(cast(Object)textViewer);
 
         fViewer= textViewer;
 
@@ -1026,7 +1039,7 @@
             int delay= fAutoActivationDelay;
             if (delay is 0)
                 delay= DEFAULT_AUTO_ACTIVATION_DELAY;
-            delay= Math.round(delay * 1.5f);
+            delay= cast(int)Math.round(delay * 1.5f);
             controller= new AdditionalInfoController2(fInformationControlCreator, delay);
         }
         fContextInfoPopup= new ContextInformationPopup2(this, fViewer);
@@ -1568,14 +1581,14 @@
      * @param listener
      */
     public void removeProposalListener(IProposalListener listener) {
-        fProposalListeners.remove(listener);
+        fProposalListeners.remove(cast(Object)listener);
     }
 
     /**
      * @param listener
      */
     public void addProposalListener(IProposalListener listener) {
-        fProposalListeners.add(listener);
+        fProposalListeners.add(cast(Object)listener);
     }
 
     /**
--- a/dwtx/jface/text/ITextOperationTarget.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/text/ITextOperationTarget.d	Tue Sep 09 17:44:11 2008 +0200
@@ -12,147 +12,6 @@
  *******************************************************************************/
 module dwtx.jface.text.ITextOperationTarget;
 
-import dwtx.jface.text.IDocumentPartitioningListener; // packageimport
-import dwtx.jface.text.DefaultTextHover; // packageimport
-import dwtx.jface.text.AbstractInformationControl; // packageimport
-import dwtx.jface.text.TextUtilities; // packageimport
-import dwtx.jface.text.IInformationControlCreatorExtension; // packageimport
-import dwtx.jface.text.AbstractInformationControlManager; // packageimport
-import dwtx.jface.text.ITextViewerExtension2; // packageimport
-import dwtx.jface.text.IDocumentPartitioner; // packageimport
-import dwtx.jface.text.DefaultIndentLineAutoEditStrategy; // packageimport
-import dwtx.jface.text.ITextSelection; // packageimport
-import dwtx.jface.text.Document; // packageimport
-import dwtx.jface.text.FindReplaceDocumentAdapterContentProposalProvider; // packageimport
-import dwtx.jface.text.ITextListener; // packageimport
-import dwtx.jface.text.BadPartitioningException; // packageimport
-import dwtx.jface.text.ITextViewerExtension5; // packageimport
-import dwtx.jface.text.IDocumentPartitionerExtension3; // packageimport
-import dwtx.jface.text.IUndoManager; // packageimport
-import dwtx.jface.text.ITextHoverExtension2; // packageimport
-import dwtx.jface.text.IRepairableDocument; // packageimport
-import dwtx.jface.text.IRewriteTarget; // packageimport
-import dwtx.jface.text.DefaultPositionUpdater; // packageimport
-import dwtx.jface.text.RewriteSessionEditProcessor; // packageimport
-import dwtx.jface.text.TextViewerHoverManager; // packageimport
-import dwtx.jface.text.DocumentRewriteSession; // packageimport
-import dwtx.jface.text.TextViewer; // packageimport
-import dwtx.jface.text.ITextViewerExtension8; // packageimport
-import dwtx.jface.text.RegExMessages; // packageimport
-import dwtx.jface.text.IDelayedInputChangeProvider; // packageimport
-import dwtx.jface.text.ITextOperationTargetExtension; // packageimport
-import dwtx.jface.text.IWidgetTokenOwner; // packageimport
-import dwtx.jface.text.IViewportListener; // packageimport
-import dwtx.jface.text.GapTextStore; // packageimport
-import dwtx.jface.text.MarkSelection; // packageimport
-import dwtx.jface.text.IDocumentPartitioningListenerExtension; // packageimport
-import dwtx.jface.text.IDocumentAdapterExtension; // packageimport
-import dwtx.jface.text.IInformationControlExtension; // packageimport
-import dwtx.jface.text.IDocumentPartitioningListenerExtension2; // packageimport
-import dwtx.jface.text.DefaultDocumentAdapter; // packageimport
-import dwtx.jface.text.ITextViewerExtension3; // packageimport
-import dwtx.jface.text.IInformationControlCreator; // packageimport
-import dwtx.jface.text.TypedRegion; // packageimport
-import dwtx.jface.text.ISynchronizable; // packageimport
-import dwtx.jface.text.IMarkRegionTarget; // packageimport
-import dwtx.jface.text.TextViewerUndoManager; // packageimport
-import dwtx.jface.text.IRegion; // packageimport
-import dwtx.jface.text.IInformationControlExtension2; // packageimport
-import dwtx.jface.text.IDocumentExtension4; // packageimport
-import dwtx.jface.text.IDocumentExtension2; // packageimport
-import dwtx.jface.text.IDocumentPartitionerExtension2; // packageimport
-import dwtx.jface.text.Assert; // packageimport
-import dwtx.jface.text.DefaultInformationControl; // packageimport
-import dwtx.jface.text.IWidgetTokenOwnerExtension; // packageimport
-import dwtx.jface.text.DocumentClone; // packageimport
-import dwtx.jface.text.DefaultUndoManager; // packageimport
-import dwtx.jface.text.IFindReplaceTarget; // packageimport
-import dwtx.jface.text.IAutoEditStrategy; // packageimport
-import dwtx.jface.text.ILineTrackerExtension; // packageimport
-import dwtx.jface.text.IUndoManagerExtension; // packageimport
-import dwtx.jface.text.TextSelection; // packageimport
-import dwtx.jface.text.DefaultAutoIndentStrategy; // packageimport
-import dwtx.jface.text.IAutoIndentStrategy; // packageimport
-import dwtx.jface.text.IPainter; // packageimport
-import dwtx.jface.text.IInformationControl; // packageimport
-import dwtx.jface.text.IInformationControlExtension3; // packageimport
-import dwtx.jface.text.ITextViewerExtension6; // packageimport
-import dwtx.jface.text.IInformationControlExtension4; // packageimport
-import dwtx.jface.text.DefaultLineTracker; // packageimport
-import dwtx.jface.text.IDocumentInformationMappingExtension; // packageimport
-import dwtx.jface.text.IRepairableDocumentExtension; // packageimport
-import dwtx.jface.text.ITextHover; // packageimport
-import dwtx.jface.text.FindReplaceDocumentAdapter; // packageimport
-import dwtx.jface.text.ILineTracker; // packageimport
-import dwtx.jface.text.Line; // packageimport
-import dwtx.jface.text.ITextViewerExtension; // packageimport
-import dwtx.jface.text.IDocumentAdapter; // packageimport
-import dwtx.jface.text.TextEvent; // packageimport
-import dwtx.jface.text.BadLocationException; // packageimport
-import dwtx.jface.text.AbstractDocument; // packageimport
-import dwtx.jface.text.AbstractLineTracker; // packageimport
-import dwtx.jface.text.TreeLineTracker; // packageimport
-import dwtx.jface.text.ITextPresentationListener; // packageimport
-import dwtx.jface.text.Region; // packageimport
-import dwtx.jface.text.ITextViewer; // packageimport
-import dwtx.jface.text.IDocumentInformationMapping; // packageimport
-import dwtx.jface.text.MarginPainter; // packageimport
-import dwtx.jface.text.IPaintPositionManager; // packageimport
-import dwtx.jface.text.TextPresentation; // packageimport
-import dwtx.jface.text.IFindReplaceTargetExtension; // packageimport
-import dwtx.jface.text.ISlaveDocumentManagerExtension; // packageimport
-import dwtx.jface.text.ISelectionValidator; // packageimport
-import dwtx.jface.text.IDocumentExtension; // packageimport
-import dwtx.jface.text.PropagatingFontFieldEditor; // packageimport
-import dwtx.jface.text.ConfigurableLineTracker; // packageimport
-import dwtx.jface.text.SlaveDocumentEvent; // packageimport
-import dwtx.jface.text.IDocumentListener; // packageimport
-import dwtx.jface.text.PaintManager; // packageimport
-import dwtx.jface.text.IFindReplaceTargetExtension3; // packageimport
-import dwtx.jface.text.ITextDoubleClickStrategy; // packageimport
-import dwtx.jface.text.IDocumentExtension3; // packageimport
-import dwtx.jface.text.Position; // packageimport
-import dwtx.jface.text.TextMessages; // packageimport
-import dwtx.jface.text.CopyOnWriteTextStore; // packageimport
-import dwtx.jface.text.WhitespaceCharacterPainter; // packageimport
-import dwtx.jface.text.IPositionUpdater; // packageimport
-import dwtx.jface.text.DefaultTextDoubleClickStrategy; // packageimport
-import dwtx.jface.text.ListLineTracker; // packageimport
-import dwtx.jface.text.ITextInputListener; // packageimport
-import dwtx.jface.text.BadPositionCategoryException; // packageimport
-import dwtx.jface.text.IWidgetTokenKeeperExtension; // packageimport
-import dwtx.jface.text.IInputChangedListener; // packageimport
-import dwtx.jface.text.IDocumentInformationMappingExtension2; // packageimport
-import dwtx.jface.text.ITextViewerExtension7; // packageimport
-import dwtx.jface.text.IInformationControlExtension5; // packageimport
-import dwtx.jface.text.IDocumentRewriteSessionListener; // packageimport
-import dwtx.jface.text.JFaceTextUtil; // packageimport
-import dwtx.jface.text.AbstractReusableInformationControlCreator; // packageimport
-import dwtx.jface.text.TabsToSpacesConverter; // packageimport
-import dwtx.jface.text.CursorLinePainter; // packageimport
-import dwtx.jface.text.ITextHoverExtension; // packageimport
-import dwtx.jface.text.IEventConsumer; // packageimport
-import dwtx.jface.text.IDocument; // packageimport
-import dwtx.jface.text.IWidgetTokenKeeper; // packageimport
-import dwtx.jface.text.DocumentCommand; // packageimport
-import dwtx.jface.text.TypedPosition; // packageimport
-import dwtx.jface.text.IEditingSupportRegistry; // packageimport
-import dwtx.jface.text.IDocumentPartitionerExtension; // packageimport
-import dwtx.jface.text.AbstractHoverInformationControlManager; // packageimport
-import dwtx.jface.text.IEditingSupport; // packageimport
-import dwtx.jface.text.IMarkSelection; // packageimport
-import dwtx.jface.text.ISlaveDocumentManager; // packageimport
-import dwtx.jface.text.DocumentEvent; // packageimport
-import dwtx.jface.text.DocumentPartitioningChangedEvent; // packageimport
-import dwtx.jface.text.ITextStore; // packageimport
-import dwtx.jface.text.JFaceTextMessages; // packageimport
-import dwtx.jface.text.DocumentRewriteSessionEvent; // packageimport
-import dwtx.jface.text.SequentialRewriteTextStore; // packageimport
-import dwtx.jface.text.DocumentRewriteSessionType; // packageimport
-import dwtx.jface.text.TextAttribute; // packageimport
-import dwtx.jface.text.ITextViewerExtension4; // packageimport
-import dwtx.jface.text.ITypedRegion; // packageimport
-
 
 import dwt.dwthelper.utils;
 
--- a/dwtx/jface/text/ITextViewer.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/text/ITextViewer.d	Tue Sep 09 17:44:11 2008 +0200
@@ -12,152 +12,23 @@
  *******************************************************************************/
 module dwtx.jface.text.ITextViewer;
 
-import dwtx.jface.text.IDocumentPartitioningListener; // packageimport
-import dwtx.jface.text.DefaultTextHover; // packageimport
-import dwtx.jface.text.AbstractInformationControl; // packageimport
-import dwtx.jface.text.TextUtilities; // packageimport
-import dwtx.jface.text.IInformationControlCreatorExtension; // packageimport
-import dwtx.jface.text.AbstractInformationControlManager; // packageimport
-import dwtx.jface.text.ITextViewerExtension2; // packageimport
-import dwtx.jface.text.IDocumentPartitioner; // packageimport
-import dwtx.jface.text.DefaultIndentLineAutoEditStrategy; // packageimport
-import dwtx.jface.text.ITextSelection; // packageimport
-import dwtx.jface.text.Document; // packageimport
-import dwtx.jface.text.FindReplaceDocumentAdapterContentProposalProvider; // packageimport
 import dwtx.jface.text.ITextListener; // packageimport
-import dwtx.jface.text.BadPartitioningException; // packageimport
-import dwtx.jface.text.ITextViewerExtension5; // packageimport
-import dwtx.jface.text.IDocumentPartitionerExtension3; // packageimport
 import dwtx.jface.text.IUndoManager; // packageimport
 import dwtx.jface.text.ITextHoverExtension2; // packageimport
-import dwtx.jface.text.IRepairableDocument; // packageimport
-import dwtx.jface.text.IRewriteTarget; // packageimport
-import dwtx.jface.text.DefaultPositionUpdater; // packageimport
-import dwtx.jface.text.RewriteSessionEditProcessor; // packageimport
-import dwtx.jface.text.TextViewerHoverManager; // packageimport
-import dwtx.jface.text.DocumentRewriteSession; // packageimport
-import dwtx.jface.text.TextViewer; // packageimport
-import dwtx.jface.text.ITextViewerExtension8; // packageimport
-import dwtx.jface.text.RegExMessages; // packageimport
-import dwtx.jface.text.IDelayedInputChangeProvider; // packageimport
-import dwtx.jface.text.ITextOperationTargetExtension; // packageimport
-import dwtx.jface.text.IWidgetTokenOwner; // packageimport
 import dwtx.jface.text.IViewportListener; // packageimport
-import dwtx.jface.text.GapTextStore; // packageimport
-import dwtx.jface.text.MarkSelection; // packageimport
-import dwtx.jface.text.IDocumentPartitioningListenerExtension; // packageimport
-import dwtx.jface.text.IDocumentAdapterExtension; // packageimport
-import dwtx.jface.text.IInformationControlExtension; // packageimport
-import dwtx.jface.text.IDocumentPartitioningListenerExtension2; // packageimport
-import dwtx.jface.text.DefaultDocumentAdapter; // packageimport
-import dwtx.jface.text.ITextViewerExtension3; // packageimport
-import dwtx.jface.text.IInformationControlCreator; // packageimport
-import dwtx.jface.text.TypedRegion; // packageimport
-import dwtx.jface.text.ISynchronizable; // packageimport
-import dwtx.jface.text.IMarkRegionTarget; // packageimport
-import dwtx.jface.text.TextViewerUndoManager; // packageimport
 import dwtx.jface.text.IRegion; // packageimport
-import dwtx.jface.text.IInformationControlExtension2; // packageimport
-import dwtx.jface.text.IDocumentExtension4; // packageimport
-import dwtx.jface.text.IDocumentExtension2; // packageimport
-import dwtx.jface.text.IDocumentPartitionerExtension2; // packageimport
-import dwtx.jface.text.Assert; // packageimport
-import dwtx.jface.text.DefaultInformationControl; // packageimport
-import dwtx.jface.text.IWidgetTokenOwnerExtension; // packageimport
-import dwtx.jface.text.DocumentClone; // packageimport
-import dwtx.jface.text.DefaultUndoManager; // packageimport
 import dwtx.jface.text.IFindReplaceTarget; // packageimport
-import dwtx.jface.text.IAutoEditStrategy; // packageimport
-import dwtx.jface.text.ILineTrackerExtension; // packageimport
-import dwtx.jface.text.IUndoManagerExtension; // packageimport
-import dwtx.jface.text.TextSelection; // packageimport
-import dwtx.jface.text.DefaultAutoIndentStrategy; // packageimport
 import dwtx.jface.text.IAutoIndentStrategy; // packageimport
-import dwtx.jface.text.IPainter; // packageimport
-import dwtx.jface.text.IInformationControl; // packageimport
-import dwtx.jface.text.IInformationControlExtension3; // packageimport
-import dwtx.jface.text.ITextViewerExtension6; // packageimport
-import dwtx.jface.text.IInformationControlExtension4; // packageimport
-import dwtx.jface.text.DefaultLineTracker; // packageimport
-import dwtx.jface.text.IDocumentInformationMappingExtension; // packageimport
-import dwtx.jface.text.IRepairableDocumentExtension; // packageimport
 import dwtx.jface.text.ITextHover; // packageimport
-import dwtx.jface.text.FindReplaceDocumentAdapter; // packageimport
-import dwtx.jface.text.ILineTracker; // packageimport
-import dwtx.jface.text.Line; // packageimport
-import dwtx.jface.text.ITextViewerExtension; // packageimport
-import dwtx.jface.text.IDocumentAdapter; // packageimport
-import dwtx.jface.text.TextEvent; // packageimport
-import dwtx.jface.text.BadLocationException; // packageimport
-import dwtx.jface.text.AbstractDocument; // packageimport
-import dwtx.jface.text.AbstractLineTracker; // packageimport
-import dwtx.jface.text.TreeLineTracker; // packageimport
-import dwtx.jface.text.ITextPresentationListener; // packageimport
-import dwtx.jface.text.Region; // packageimport
-import dwtx.jface.text.IDocumentInformationMapping; // packageimport
-import dwtx.jface.text.MarginPainter; // packageimport
-import dwtx.jface.text.IPaintPositionManager; // packageimport
 import dwtx.jface.text.TextPresentation; // packageimport
-import dwtx.jface.text.IFindReplaceTargetExtension; // packageimport
-import dwtx.jface.text.ISlaveDocumentManagerExtension; // packageimport
-import dwtx.jface.text.ISelectionValidator; // packageimport
-import dwtx.jface.text.IDocumentExtension; // packageimport
-import dwtx.jface.text.PropagatingFontFieldEditor; // packageimport
-import dwtx.jface.text.ConfigurableLineTracker; // packageimport
-import dwtx.jface.text.SlaveDocumentEvent; // packageimport
-import dwtx.jface.text.IDocumentListener; // packageimport
-import dwtx.jface.text.PaintManager; // packageimport
-import dwtx.jface.text.IFindReplaceTargetExtension3; // packageimport
 import dwtx.jface.text.ITextDoubleClickStrategy; // packageimport
-import dwtx.jface.text.IDocumentExtension3; // packageimport
-import dwtx.jface.text.Position; // packageimport
-import dwtx.jface.text.TextMessages; // packageimport
-import dwtx.jface.text.CopyOnWriteTextStore; // packageimport
-import dwtx.jface.text.WhitespaceCharacterPainter; // packageimport
-import dwtx.jface.text.IPositionUpdater; // packageimport
-import dwtx.jface.text.DefaultTextDoubleClickStrategy; // packageimport
-import dwtx.jface.text.ListLineTracker; // packageimport
 import dwtx.jface.text.ITextInputListener; // packageimport
-import dwtx.jface.text.BadPositionCategoryException; // packageimport
-import dwtx.jface.text.IWidgetTokenKeeperExtension; // packageimport
-import dwtx.jface.text.IInputChangedListener; // packageimport
 import dwtx.jface.text.ITextOperationTarget; // packageimport
-import dwtx.jface.text.IDocumentInformationMappingExtension2; // packageimport
-import dwtx.jface.text.ITextViewerExtension7; // packageimport
-import dwtx.jface.text.IInformationControlExtension5; // packageimport
-import dwtx.jface.text.IDocumentRewriteSessionListener; // packageimport
-import dwtx.jface.text.JFaceTextUtil; // packageimport
-import dwtx.jface.text.AbstractReusableInformationControlCreator; // packageimport
-import dwtx.jface.text.TabsToSpacesConverter; // packageimport
-import dwtx.jface.text.CursorLinePainter; // packageimport
-import dwtx.jface.text.ITextHoverExtension; // packageimport
 import dwtx.jface.text.IEventConsumer; // packageimport
 import dwtx.jface.text.IDocument; // packageimport
-import dwtx.jface.text.IWidgetTokenKeeper; // packageimport
-import dwtx.jface.text.DocumentCommand; // packageimport
-import dwtx.jface.text.TypedPosition; // packageimport
-import dwtx.jface.text.IEditingSupportRegistry; // packageimport
-import dwtx.jface.text.IDocumentPartitionerExtension; // packageimport
-import dwtx.jface.text.AbstractHoverInformationControlManager; // packageimport
-import dwtx.jface.text.IEditingSupport; // packageimport
-import dwtx.jface.text.IMarkSelection; // packageimport
-import dwtx.jface.text.ISlaveDocumentManager; // packageimport
-import dwtx.jface.text.DocumentEvent; // packageimport
-import dwtx.jface.text.DocumentPartitioningChangedEvent; // packageimport
-import dwtx.jface.text.ITextStore; // packageimport
-import dwtx.jface.text.JFaceTextMessages; // packageimport
-import dwtx.jface.text.DocumentRewriteSessionEvent; // packageimport
-import dwtx.jface.text.SequentialRewriteTextStore; // packageimport
-import dwtx.jface.text.DocumentRewriteSessionType; // packageimport
-import dwtx.jface.text.TextAttribute; // packageimport
-import dwtx.jface.text.ITextViewerExtension4; // packageimport
-import dwtx.jface.text.ITypedRegion; // packageimport
-
 
 import dwt.dwthelper.utils;
 
-
-
 import dwt.custom.StyledText;
 import dwt.graphics.Color;
 import dwt.graphics.Point;
@@ -611,7 +482,7 @@
 
     /**
      * Sets the selection to the specified range.
-     * 
+     *
      * @param offset the offset of the selection range
      * @param length the length of the selection range. A negative length places
      *            the caret at the visual start of the selection.
--- a/dwtx/jface/text/contentassist/AdditionalInfoController.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/text/contentassist/AdditionalInfoController.d	Tue Sep 09 17:44:11 2008 +0200
@@ -292,15 +292,15 @@
             long current= System.currentTimeMillis();
             schedule(IDLE, current);
 
-            void threadrun() {
-                try {
-                    loop();
-                } catch (InterruptedException x) {
-                }
+            fThread= new JThread( &threadrun );
+            fThread.serName( JFaceTextMessages.getString("InfoPopup.info_delay_timer_name")); //$NON-NLS-1$
+            fThread.start();
+        }
+        void threadrun() {
+            try {
+                loop();
+            } catch (InterruptedException x) {
             }
-            fThread= new Thread( &threadrun );
-            fThread.name = JFaceTextMessages.getString("InfoPopup.info_delay_timer_name"); //$NON-NLS-1$
-            fThread.start();
         }
 
         /**
--- a/dwtx/jface/text/contentassist/ContentAssistant.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/text/contentassist/ContentAssistant.d	Tue Sep 09 17:44:11 2008 +0200
@@ -49,6 +49,8 @@
 import dwt.dwthelper.utils;
 import dwtx.dwtxhelper.Collection;
 import dwtx.dwtxhelper.JThread;
+import tango.core.sync.Mutex;
+import tango.core.sync.Condition;
 
 import dwt.DWT;
 import dwt.DWTError;
@@ -276,30 +278,38 @@
      */
     protected class AutoAssistListener : KeyAdapter , KeyListener, Runnable, VerifyKeyListener {
 
+        // DWT intf impl
+        public void keyReleased(KeyEvent e) {
+            super.keyReleased(e);
+        }
+
         private JThread fThread;
         private bool fIsReset= false;
-        private Object fMutex= new Object();
+        private Mutex fMutex;
+        private Condition fMutex_cond;
         private int fShowStyle;
 
         private const static int SHOW_PROPOSALS= 1;
         private const static int SHOW_CONTEXT_INFO= 2;
 
         protected this() {
+            fMutex = new Mutex();
+            fMutex_cond = new Condition(fMutex);
         }
 
         protected void start(int showStyle) {
             fShowStyle= showStyle;
-            fThread= new Thread(&run);
-            fThread.name = JFaceTextMessages.getString("ContentAssistant.assist_delay_timer_name"); //$NON-NLS-1$
+            fThread= new JThread(this);
+            fThread.setName( JFaceTextMessages.getString("ContentAssistant.assist_delay_timer_name")); //$NON-NLS-1$
             fThread.start();
         }
 
-        public void run() {
+        public override void run() {
             try {
                 while (true) {
                     synchronized (fMutex) {
                         if (fAutoActivationDelay !is 0)
-                            fMutex.wait(fAutoActivationDelay);
+                            fMutex_cond.wait(fAutoActivationDelay);
                         if (fIsReset) {
                             fIsReset= false;
                             continue;
@@ -317,12 +327,12 @@
             synchronized (fMutex) {
                 fShowStyle= showStyle;
                 fIsReset= true;
-                fMutex.notifyAll();
+                fMutex_cond.notifyAll();
             }
         }
 
         protected void stop() {
-            Thread threadToStop= fThread;
+            JThread threadToStop= fThread;
             if (threadToStop !is null && threadToStop.isAlive())
                 threadToStop.interrupt();
         }
@@ -432,8 +442,13 @@
         public const static int LAYOUT_CONTEXT_INFO_POPUP= 2;
 
         int fContextType= LAYOUT_CONTEXT_SELECTOR;
-        Shell[] fShells= new Shell[3];
-        Object[] fPopups= new Object[3];
+        Shell[] fShells;
+        Object[] fPopups;
+
+        this(){
+            fShells= new Shell[3];
+            fPopups= new Object[3];
+        }
 
         protected void add(Object popup, Shell shell, int type, int offset) {
             Assert.isNotNull(popup);
@@ -668,7 +683,7 @@
             Control subjectControl= fContentAssistSubjectControlAdapter.getControl();
             Display display= subjectControl.getDisplay();
             Rectangle caret= getCaretRectangle(offset);
-            Monitor monitor= getClosestMonitor(display, caret);
+            dwt.widgets.Monitor.Monitor monitor= getClosestMonitor(display, caret);
             Rectangle bounds= monitor.getClientArea();
             Geometry.moveInside(caret, bounds);
 
@@ -708,7 +723,7 @@
             Control subjectControl= fContentAssistSubjectControlAdapter.getControl();
             Display display= subjectControl.getDisplay();
             Rectangle caret= getCaretRectangle(offset);
-            Monitor monitor= getClosestMonitor(display, caret);
+            dwt.widgets.Monitor.Monitor monitor= getClosestMonitor(display, caret);
             Rectangle bounds= monitor.getClientArea();
             Geometry.moveInside(caret, bounds);
 
@@ -761,7 +776,7 @@
             p= parent.toDisplay(p);
 
             Point shellSize= shell.getSize();
-            Monitor monitor= getClosestMonitor(parent.getDisplay(), new Rectangle(p.x, p.y, 0, 0));
+            dwt.widgets.Monitor.Monitor monitor= getClosestMonitor(parent.getDisplay(), new Rectangle(p.x, p.y, 0, 0));
             Rectangle displayBounds= monitor.getClientArea();
             constrainLocation(p, shellSize, displayBounds);
 
@@ -800,15 +815,15 @@
          * @return the monitor closest to the given point
          * @since 3.3
          */
-        private Monitor getClosestMonitor(Display toSearch, Rectangle rectangle) {
+        private dwt.widgets.Monitor.Monitor getClosestMonitor(Display toSearch, Rectangle rectangle) {
             int closest = Integer.MAX_VALUE;
 
             Point toFind= Geometry.centerPoint(rectangle);
-            Monitor[] monitors = toSearch.getMonitors();
-            Monitor result = monitors[0];
+            dwt.widgets.Monitor.Monitor[] monitors = toSearch.getMonitors();
+            dwt.widgets.Monitor.Monitor result = monitors[0];
 
             for (int idx = 0; idx < monitors.length; idx++) {
-                Monitor current = monitors[idx];
+                dwt.widgets.Monitor.Monitor current = monitors[idx];
 
                 Rectangle clientArea = current.getClientArea();
 
@@ -840,7 +855,7 @@
          * @see VerifyKeyListener#verifyKey(dwt.events.VerifyEvent)
          */
         public void verifyKey(VerifyEvent e) {
-            IContentAssistListener[] listeners= arraycast!(IContentAssistListener)( fListeners.clone() );
+            IContentAssistListener[] listeners= arraycast!(IContentAssistListener)( fListeners.dup );
             for (int i= 0; i < listeners.length; i++) {
                 if (listeners[i] !is null) {
                     if (!listeners[i].verifyKey(e) || !e.doit)
@@ -858,7 +873,7 @@
 
             installKeyListener();
 
-            IContentAssistListener[] listeners= arraycast!(IContentAssistListener)( fListeners.clone() );
+            IContentAssistListener[] listeners= arraycast!(IContentAssistListener)( fListeners.dup );
             for (int i= 0; i < listeners.length; i++) {
                 if (listeners[i] !is null) {
                     listeners[i].processEvent(event);
@@ -878,9 +893,9 @@
     public static const String STORE_SIZE_Y= "size.y"; //$NON-NLS-1$
 
     // Content-Assist Listener types
-    final static int CONTEXT_SELECTOR= 0;
-    final static int PROPOSAL_SELECTOR= 1;
-    final static int CONTEXT_INFO_POPUP= 2;
+    const static int CONTEXT_SELECTOR= 0;
+    const static int PROPOSAL_SELECTOR= 1;
+    const static int CONTEXT_INFO_POPUP= 2;
 
     /**
      * The popup priority: &gt; linked position proposals and hover pop-ups. Default value:
@@ -1075,7 +1090,7 @@
         if (processor is null)
             fProcessors.remove(contentType);
         else
-            fProcessors.put(contentType, processor);
+            fProcessors.put(contentType, cast(Object)processor);
     }
 
     /*
@@ -1101,7 +1116,7 @@
         StringBuffer buf= new StringBuffer(5);
         Iterator iter= fProcessors.entrySet().iterator();
         while (iter.hasNext()) {
-            Entry entry= cast(Entry) iter.next();
+            Map.Entry entry= cast(Map.Entry) iter.next();
             IContentAssistProcessor processor= cast(IContentAssistProcessor) entry.getValue();
             char[] triggers= processor.getCompletionProposalAutoActivationCharacters();
             if (triggers !is null)
@@ -1414,7 +1429,7 @@
             int delay= fAutoActivationDelay;
             if (delay is 0)
                 delay= DEFAULT_AUTO_ACTIVATION_DELAY;
-            delay= Math.round(delay * 1.5f);
+            delay= cast(int)Math.round(delay * 1.5f);
             controller= new AdditionalInfoController(fInformationControlCreator, delay);
         }
 
@@ -2241,7 +2256,7 @@
      */
     public void addCompletionListener(ICompletionListener listener) {
         Assert.isLegal(listener !is null);
-        fCompletionListeners.add(listener);
+        fCompletionListeners.add(cast(Object)listener);
     }
 
     /*
@@ -2249,7 +2264,7 @@
      * @since 3.2
      */
     public void removeCompletionListener(ICompletionListener listener) {
-        fCompletionListeners.remove(listener);
+        fCompletionListeners.remove(cast(Object)listener);
     }
 
     /**
@@ -2478,7 +2493,7 @@
     protected final void registerHandler(String commandId, IHandler handler) {
         if (fHandlers is null)
             fHandlers= new HashMap(2);
-        fHandlers.put(commandId, handler);
+        fHandlers.put(commandId, cast(Object)handler);
     }
 
     /**
--- a/dwtx/jface/text/source/ISourceViewer.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/text/source/ISourceViewer.d	Tue Sep 09 17:44:11 2008 +0200
@@ -12,68 +12,10 @@
  *******************************************************************************/
 module dwtx.jface.text.source.ISourceViewer;
 
-import dwtx.jface.text.source.ISharedTextColors; // packageimport
-import dwtx.jface.text.source.ILineRange; // packageimport
-import dwtx.jface.text.source.IAnnotationPresentation; // packageimport
-import dwtx.jface.text.source.IVerticalRulerInfoExtension; // packageimport
-import dwtx.jface.text.source.ICharacterPairMatcher; // packageimport
-import dwtx.jface.text.source.TextInvocationContext; // packageimport
-import dwtx.jface.text.source.LineChangeHover; // packageimport
-import dwtx.jface.text.source.IChangeRulerColumn; // packageimport
-import dwtx.jface.text.source.IAnnotationMap; // packageimport
-import dwtx.jface.text.source.IAnnotationModelListenerExtension; // packageimport
-import dwtx.jface.text.source.ISourceViewerExtension2; // packageimport
-import dwtx.jface.text.source.IAnnotationHover; // packageimport
-import dwtx.jface.text.source.ContentAssistantFacade; // packageimport
-import dwtx.jface.text.source.IAnnotationAccess; // packageimport
-import dwtx.jface.text.source.IVerticalRulerExtension; // packageimport
-import dwtx.jface.text.source.IVerticalRulerColumn; // packageimport
-import dwtx.jface.text.source.LineNumberRulerColumn; // packageimport
-import dwtx.jface.text.source.MatchingCharacterPainter; // packageimport
-import dwtx.jface.text.source.IAnnotationModelExtension; // packageimport
-import dwtx.jface.text.source.ILineDifferExtension; // packageimport
-import dwtx.jface.text.source.DefaultCharacterPairMatcher; // packageimport
-import dwtx.jface.text.source.LineNumberChangeRulerColumn; // packageimport
-import dwtx.jface.text.source.IAnnotationAccessExtension; // packageimport
-import dwtx.jface.text.source.AnnotationModel; // packageimport
-import dwtx.jface.text.source.ILineDifferExtension2; // packageimport
-import dwtx.jface.text.source.IAnnotationModelListener; // packageimport
-import dwtx.jface.text.source.IVerticalRuler; // packageimport
-import dwtx.jface.text.source.DefaultAnnotationHover; // packageimport
-import dwtx.jface.text.source.SourceViewer; // packageimport
-import dwtx.jface.text.source.SourceViewerConfiguration; // packageimport
-import dwtx.jface.text.source.AnnotationBarHoverManager; // packageimport
-import dwtx.jface.text.source.CompositeRuler; // packageimport
-import dwtx.jface.text.source.ImageUtilities; // packageimport
-import dwtx.jface.text.source.VisualAnnotationModel; // packageimport
-import dwtx.jface.text.source.IAnnotationModel; // packageimport
-import dwtx.jface.text.source.ISourceViewerExtension3; // packageimport
-import dwtx.jface.text.source.ILineDiffInfo; // packageimport
-import dwtx.jface.text.source.VerticalRulerEvent; // packageimport
-import dwtx.jface.text.source.ChangeRulerColumn; // packageimport
-import dwtx.jface.text.source.ILineDiffer; // packageimport
-import dwtx.jface.text.source.AnnotationModelEvent; // packageimport
-import dwtx.jface.text.source.AnnotationColumn; // packageimport
-import dwtx.jface.text.source.AnnotationRulerColumn; // packageimport
-import dwtx.jface.text.source.IAnnotationHoverExtension; // packageimport
-import dwtx.jface.text.source.AbstractRulerColumn; // packageimport
-import dwtx.jface.text.source.ISourceViewerExtension; // packageimport
-import dwtx.jface.text.source.AnnotationMap; // packageimport
-import dwtx.jface.text.source.IVerticalRulerInfo; // packageimport
-import dwtx.jface.text.source.IAnnotationModelExtension2; // packageimport
-import dwtx.jface.text.source.LineRange; // packageimport
-import dwtx.jface.text.source.IAnnotationAccessExtension2; // packageimport
-import dwtx.jface.text.source.VerticalRuler; // packageimport
-import dwtx.jface.text.source.JFaceTextMessages; // packageimport
-import dwtx.jface.text.source.IOverviewRuler; // packageimport
-import dwtx.jface.text.source.Annotation; // packageimport
-import dwtx.jface.text.source.IVerticalRulerListener; // packageimport
-import dwtx.jface.text.source.ISourceViewerExtension4; // packageimport
-import dwtx.jface.text.source.AnnotationPainter; // packageimport
-import dwtx.jface.text.source.IAnnotationHoverExtension2; // packageimport
-import dwtx.jface.text.source.OverviewRuler; // packageimport
-import dwtx.jface.text.source.OverviewRulerHoverManager; // packageimport
-
+import dwtx.jface.text.source.SourceViewerConfiguration;
+import dwtx.jface.text.source.IAnnotationHover;
+import dwtx.jface.text.source.IAnnotationModel;
+import dwtx.jface.text.source.Annotation;
 
 import dwt.dwthelper.utils;
 
--- a/dwtx/jface/text/templates/persistence/TemplatePersistenceMessages.properties	Tue Sep 09 15:59:16 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-TemplateReaderWriter.duplicate.id= Duplicate template id
-TemplateReaderWriter.error.missing_attribute= Missing required attribute
-TemplateReaderWriter.error.illegal_boolean_attribute= Illegal boolean attribute, must be "true" or "false".
--- a/dwtx/jface/text/templates/persistence/TemplateReaderWriter.d	Tue Sep 09 15:59:16 2008 +0200
+++ b/dwtx/jface/text/templates/persistence/TemplateReaderWriter.d	Tue Sep 09 17:44:11 2008 +0200
@@ -19,6 +19,7 @@
 
 import dwt.dwthelper.utils;
 import dwt.dwthelper.InputStream;
+import dwt.dwthelper.OutputStream;
 import dwtx.dwtxhelper.Collection;
 import dwt.dwthelper.ResourceBundle;
 
@@ -102,9 +103,10 @@
      * @since 3.1
      */
     public TemplatePersistenceData readSingle(Reader reader, String id)  {
-        TemplatePersistenceData[] datas= read(new InputSource(reader), null, id);
+        implMissing(__FILE__,__LINE__);
+/+        TemplatePersistenceData[] datas= read(new InputSource(reader), null, id);
         if (datas.length > 0)
-            return datas[0];
+            return datas[0];+/
         return null;
     }
 
@@ -117,7 +119,9 @@
      * @throws IOException if reading from the stream fails
      */
     public TemplatePersistenceData[] read(Reader reader, ResourceBundle bundle)  {
-        return read(new InputSource(reader), bundle, null);
+        implMissing(__FILE__,__LINE__);
+        return null;
+//         return read(new InputSource(reader), bundle, null);
     }
 
     /**
@@ -129,9 +133,11 @@
      * @throws IOException if reading from the stream fails
      */
     public TemplatePersistenceData[] read(InputStream stream, ResourceBundle bundle)  {
-        return read(new InputSource(stream), bundle, null);
+        implMissing(__FILE__,__LINE__);
+        return null;
+//         return read(new InputSource(stream), bundle, null);
     }
-
+/++
     /**
      * Reads templates from an <code>InputSource</code> and adds them to the templates.
      *
@@ -219,7 +225,7 @@
 
         return null; // dummy
     }
-
+++/
     /**
      * Saves the templates as XML, encoded as UTF-8 onto the given byte stream.
      *
@@ -228,7 +234,8 @@
      * @throws IOException if writing the templates fails
      */
     public void save(TemplatePersistenceData[] templates, OutputStream stream)  {
-        save(templates, new StreamResult(stream));
+        implMissing(__FILE__,__LINE__);
+//         save(templates, new StreamResult(stream));
     }
 
     /**
@@ -239,9 +246,11 @@
      * @throws IOException if writing the templates fails
      */
     public void save(TemplatePersistenceData[] templates, Writer writer)  {
-        save(templates, new StreamResult(writer));
+        implMissing(__FILE__,__LINE__);
+//         save(templates, new StreamResult(writer));
     }
 
+/++
     /**
      * Saves the templates as XML.
      *
@@ -386,5 +395,6 @@
         }
         return TemplatePersistenceMessages.getString(key); // default messages
     }
+++/
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/res/dwtx.jface.text.templates.persistence.TemplatePersistenceMessages.properties	Tue Sep 09 17:44:11 2008 +0200
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+TemplateReaderWriter.duplicate.id= Duplicate template id
+TemplateReaderWriter.error.missing_attribute= Missing required attribute
+TemplateReaderWriter.error.illegal_boolean_attribute= Illegal boolean attribute, must be "true" or "false".