You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2008/04/07 15:18:37 UTC

svn commit: r645502 [4/4] - in /maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui: ./ icons/ icons/dtool16/ icons/etool16/ lib/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache...

Added: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizard.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizard.java?rev=645502&view=auto
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizard.java (added)
+++ maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizard.java Mon Apr  7 06:18:18 2008
@@ -0,0 +1,245 @@
+package org.apache.maven.doxia.ide.eclipse.common.ui.wizards;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.maven.doxia.ide.eclipse.common.ui.CommonPlugin;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+
+/**
+ * This is a new Doxia wizard. Its role is to create a new file resource in the provided container.
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id$
+ * @since 1.0
+ */
+public abstract class AbstractWizard
+    extends Wizard
+    implements INewWizard
+{
+    private AbstractWizardPage page;
+
+    private ISelection selection;
+
+    /**
+     * Constructor for AbstractDoxiaWizard.
+     */
+    public AbstractWizard()
+    {
+        super();
+
+        Assert.isNotNull( getWizardTemplate(), "getWizardTemplate() should be initialized" );
+
+        setNeedsProgressMonitor( true );
+    }
+
+    @Override
+    public void addPages()
+    {
+        page = getWizardPage( selection );
+        Assert.isNotNull( page, "page should be initialized" );
+        addPage( page );
+    }
+
+    @Override
+    public boolean performFinish()
+    {
+        final String containerName = page.getContainerName();
+        final String fileName = page.getFileName();
+        IRunnableWithProgress op = new IRunnableWithProgress()
+        {
+            /** {@inheritDoc} */
+            public void run( IProgressMonitor monitor )
+                throws InvocationTargetException
+            {
+                try
+                {
+                    doFinish( containerName, fileName, monitor );
+                }
+                catch ( CoreException e )
+                {
+                    throw new InvocationTargetException( e );
+                }
+                finally
+                {
+                    try
+                    {
+                        IFile file = getFile( containerName, fileName );
+                        file.delete( true, new NullProgressMonitor() );
+                    }
+                    catch ( CoreException e )
+                    {
+                        throw new InvocationTargetException( e );
+                    }
+
+                    monitor.done();
+                }
+            }
+        };
+
+        try
+        {
+            getContainer().run( true, false, op );
+        }
+        catch ( InterruptedException e )
+        {
+            CommonPlugin.logError( "InterruptedException: " + e.getMessage(), e );
+
+            return false;
+        }
+        catch ( InvocationTargetException e )
+        {
+            CommonPlugin.logError( "InvocationTargetException: " + e.getMessage(), e );
+
+            Throwable realException = e.getTargetException();
+            MessageDialog.openError( getShell(), "Error", realException.getMessage() );
+
+            return false;
+        }
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    public void init( IWorkbench workbench, IStructuredSelection selection )
+    {
+        this.selection = selection;
+    }
+
+    /**
+     * @param selection
+     * @return the implementation of an wizard page for a Doxia editor.
+     */
+    public abstract AbstractWizardPage getWizardPage( ISelection selection );
+
+    /**
+     * @return the wizard template resource name.
+     * @see #openContentStream()
+     */
+    public abstract String getWizardTemplate();
+
+    // ----------------------------------------------------------------------
+    // Private methods
+    // ----------------------------------------------------------------------
+
+    /**
+     * The worker method. It will find the container, create the
+     * file if missing or just replace its contents, and open
+     * the editor on the newly created file.
+     */
+    private void doFinish( String containerName, String fileName, IProgressMonitor monitor )
+        throws CoreException
+    {
+        // create a sample file
+        monitor.beginTask( "Creating " + fileName, 2 );
+        final IFile file = getFile( containerName, fileName );
+        Assert.isNotNull( file, "file " + fileName + " was not found" );
+        try
+        {
+            InputStream stream = openContentStream();
+            Assert.isNotNull( file, "stream was not found" );
+            if ( file.exists() )
+            {
+                file.setContents( stream, true, true, monitor );
+            }
+            else
+            {
+                file.create( stream, true, monitor );
+            }
+            stream.close();
+        }
+        catch ( IOException e )
+        {
+        }
+        monitor.worked( 1 );
+        monitor.setTaskName( "Opening file for editing..." );
+        getShell().getDisplay().asyncExec( new Runnable()
+        {
+            /** {@inheritDoc} */
+            public void run()
+            {
+                IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+                try
+                {
+                    IDE.openEditor( page, file, true );
+                }
+                catch ( PartInitException e )
+                {
+                    CommonPlugin.logError( "PartInitException: " + e.getMessage(), e );
+                }
+            }
+        } );
+        monitor.worked( 1 );
+    }
+
+    private IFile getFile( String containerName, String fileName )
+        throws CoreException
+    {
+        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+        IResource resource = root.findMember( new Path( containerName ) );
+        if ( !resource.exists() || !( resource instanceof IContainer ) )
+        {
+            throwCoreException( "Container \"" + containerName + "\" does not exist." );
+        }
+        IContainer container = (IContainer) resource;
+        return container.getFile( new Path( fileName ) );
+    }
+
+    /**
+     * Finds a resource with a given name.
+     *
+     * @return the inputstream for the wizard or null if not found.
+     */
+    private InputStream openContentStream()
+    {
+        return getClass().getResourceAsStream( getWizardTemplate() );
+    }
+
+    private void throwCoreException( String message )
+        throws CoreException
+    {
+        IStatus status = new Status( IStatus.ERROR, CommonPlugin.PLUGIN_ID, IStatus.OK, message, null );
+        throw new CoreException( status );
+    }
+}
\ No newline at end of file

Propchange: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizard.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizard.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizardPage.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizardPage.java?rev=645502&view=auto
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizardPage.java (added)
+++ maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizardPage.java Mon Apr  7 06:18:18 2008
@@ -0,0 +1,268 @@
+package org.apache.maven.doxia.ide.eclipse.common.ui.wizards;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+
+import org.apache.maven.doxia.ide.eclipse.common.ui.CommonPluginMessages;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ContainerSelectionDialog;
+
+/**
+ * The "New" Doxia wizard page allows setting the container for the new file as well
+ * as the file name. The page will only accept file name without the extension
+ * OR with the extension that matches the expected one.
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id$
+ * @since 1.0
+ */
+public abstract class AbstractWizardPage
+    extends WizardPage
+{
+    private Text containerText;
+
+    private Text fileText;
+
+    private ISelection selection;
+
+    /**
+     * Constructor for AbstractWizardPage.
+     *
+     * @param pageName
+     */
+    public AbstractWizardPage( ISelection selection )
+    {
+        super( "wizardPage" );
+
+        Assert.isNotNull( getExtension(), "getExtension() should be initialized" );
+
+        setTitle( getString( "title" ) );
+        setDescription( getFormattedString( "description", getExtension() ) );
+        this.selection = selection;
+    }
+
+    /** {@inheritDoc} */
+    public void createControl( Composite parent )
+    {
+        Composite container = new Composite( parent, SWT.NULL );
+        GridLayout layout = new GridLayout();
+        container.setLayout( layout );
+        layout.numColumns = 3;
+        layout.verticalSpacing = 9;
+        Label label = new Label( container, SWT.NULL );
+        label.setText( getString( "label.container.text" ) );
+
+        containerText = new Text( container, SWT.BORDER | SWT.SINGLE );
+        GridData gd = new GridData( GridData.FILL_HORIZONTAL );
+        containerText.setLayoutData( gd );
+        containerText.addModifyListener( new ModifyListener()
+        {
+            /** {@inheritDoc} */
+            public void modifyText( ModifyEvent e )
+            {
+                dialogChanged();
+            }
+        } );
+
+        Button button = new Button( container, SWT.PUSH );
+        button.setText( getString( "button.text" ) );
+        button.addSelectionListener( new SelectionAdapter()
+        {
+            /** {@inheritDoc} */
+            public void widgetSelected( SelectionEvent e )
+            {
+                handleBrowse();
+            }
+        } );
+        label = new Label( container, SWT.NULL );
+        label.setText( getString( "label.fileName.text" ) );
+
+        fileText = new Text( container, SWT.BORDER | SWT.SINGLE );
+        gd = new GridData( GridData.FILL_HORIZONTAL );
+        fileText.setLayoutData( gd );
+        fileText.addModifyListener( new ModifyListener()
+        {
+            /** {@inheritDoc} */
+            public void modifyText( ModifyEvent e )
+            {
+                dialogChanged();
+            }
+        } );
+        initialize();
+        dialogChanged();
+        setControl( container );
+    }
+
+    public String getContainerName()
+    {
+        return containerText.getText();
+    }
+
+    public String getFileName()
+    {
+        return fileText.getText();
+    }
+
+    public abstract String getExtension();
+
+    // ----------------------------------------------------------------------
+    // Private methods
+    // ----------------------------------------------------------------------
+
+    /**
+     * Tests if the current workbench selection is a suitable container to use.
+     */
+    private void initialize()
+    {
+        if ( selection != null && selection.isEmpty() == false && selection instanceof IStructuredSelection )
+        {
+            IStructuredSelection ssel = (IStructuredSelection) selection;
+            if ( ssel.size() > 1 )
+            {
+                return;
+            }
+
+            Object obj = ssel.getFirstElement();
+            if ( obj instanceof IResource )
+            {
+                IContainer container;
+                if ( obj instanceof IContainer )
+                {
+                    container = (IContainer) obj;
+                }
+                else
+                {
+                    container = ( (IResource) obj ).getParent();
+                }
+                containerText.setText( container.getFullPath().toString() );
+            }
+        }
+    }
+
+    /**
+     * Uses the standard container selection dialog to choose the new value for
+     * the container field.
+     */
+    private void handleBrowse()
+    {
+        ContainerSelectionDialog dialog = new ContainerSelectionDialog( getShell(), ResourcesPlugin.getWorkspace()
+            .getRoot(), false, getString( "dialog.text" ) );
+        if ( dialog.open() == ContainerSelectionDialog.OK )
+        {
+            Object[] result = dialog.getResult();
+            if ( result.length == 1 )
+            {
+                containerText.setText( ( (Path) result[0] ).toString() );
+            }
+        }
+    }
+
+    /**
+     * Ensures that both text fields are set.
+     */
+    private void dialogChanged()
+    {
+        IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember( new Path( getContainerName() ) );
+        String fileName = getFileName();
+
+        if ( getContainerName().length() == 0 )
+        {
+            updateStatus( getString( "errorMessage.missingContainerName" ) );
+            return;
+        }
+        if ( container == null || ( container.getType() & ( IResource.PROJECT | IResource.FOLDER ) ) == 0 )
+        {
+            updateStatus( getString( "errorMessage.missingContainer" ) );
+            return;
+        }
+        if ( !container.isAccessible() )
+        {
+            updateStatus( getString( "errorMessage.nonWritable" ) );
+            return;
+        }
+        if ( fileName.length() == 0 )
+        {
+            updateStatus( getString( "errorMessage.missingFile" ) );
+            return;
+        }
+        if ( fileName.replace( '\\', '/' ).indexOf( '/', 1 ) > 0 )
+        {
+            updateStatus( getString( "errorMessage.nonValidFile" ) );
+            return;
+        }
+        if ( fileName.indexOf( '.' ) == -1 )
+        {
+            updateStatus( getString( "errorMessage.nonValidFile" ) );
+            return;
+        }
+        int dotLoc = fileName.lastIndexOf( '.' );
+        if ( dotLoc != -1 )
+        {
+            String ext = fileName.substring( dotLoc + 1 );
+            if ( ext.equalsIgnoreCase( getExtension() ) == false )
+            {
+                updateStatus( getFormattedString( "errorMessage.nonValidExtension", getExtension() ) );
+                return;
+            }
+        }
+        File file = new File( container.getLocation().toFile(), fileName );
+        if ( file.exists() )
+        {
+            updateStatus( getString( "errorMessage.duplicatedFile" ) );
+            return;
+        }
+        updateStatus( null );
+    }
+
+    private void updateStatus( String message )
+    {
+        setErrorMessage( message );
+        setPageComplete( message == null );
+    }
+
+    private static String getString( String subkey )
+    {
+        return CommonPluginMessages.getString( "AbstractDoxiaWizardPage." + subkey );
+    }
+
+    private static String getFormattedString( String subkey, String obj )
+    {
+        return CommonPluginMessages.getFormattedString( "AbstractDoxiaWizardPage." + subkey, obj );
+    }
+}
\ No newline at end of file

Propchange: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizardPage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/java/org/apache/maven/doxia/ide/eclipse/common/ui/wizards/AbstractWizardPage.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/resources/org/apache/maven/doxia/ide/eclipse/common/ui/CommonPluginMessages.properties
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/resources/org/apache/maven/doxia/ide/eclipse/common/ui/CommonPluginMessages.properties?rev=645502&view=auto
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/resources/org/apache/maven/doxia/ide/eclipse/common/ui/CommonPluginMessages.properties (added)
+++ maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/resources/org/apache/maven/doxia/ide/eclipse/common/ui/CommonPluginMessages.properties Mon Apr  7 06:18:18 2008
@@ -0,0 +1,79 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#
+# Doxia multipage editor
+#
+AbstractMultiPageEditorPart.edit.label=Edit
+AbstractMultiPageEditorPart.view.label=View
+AbstractMultiPageEditorPart.PartInitException.message.text=Error creating nested text editor:
+AbstractMultiPageEditorPart.ConverterThrowable.message.text=Throwable error converting document:
+AbstractMultiPageEditorPart.CoreException.message.text=Eclipse core error:
+AbstractMultiPageEditorPart.doSave.openConfirm.title.text=Save required
+AbstractMultiPageEditorPart.doSave.openConfirm.message.text=You have error in your document.\nAre you sure to save now?
+AbstractMultiPageEditorPart.pageChange.openConfirm.title.text=Save required
+AbstractMultiPageEditorPart.pageChange.openConfirm.message.text=The file must be saved before switching to the View pane.\nDo you wish to save now?
+AbstractMultiPageEditorPart.pageChange.openError.title.text=Errors in the document
+AbstractMultiPageEditorPart.pageChange.openError.message.text=Errors exist in the document.\nErrors must be fixed prior to switching to View mode.
+
+#
+# Doxia actions
+#
+AptDecoratedTextEditor.contentAssist.label = Content Assist@Ctrl+Space
+AptDecoratedTextEditor.contentAssist.tooltip = Content Assist
+AptDecoratedTextEditor.contentAssist.description = Content Assist
+
+#
+# Doxia wizards
+#
+AbstractDoxiaWizardPage.title=Doxia Editor Page
+AbstractDoxiaWizardPage.description=This wizard creates a new Doxia file with *.{0} extension.
+AbstractDoxiaWizardPage.label.container.text=&Container:
+AbstractDoxiaWizardPage.button.text=Browse...
+AbstractDoxiaWizardPage.label.fileName.text=&File name:
+AbstractDoxiaWizardPage.dialog.text=Select new file container
+AbstractDoxiaWizardPage.errorMessage.missingContainerName=File container must be specified.
+AbstractDoxiaWizardPage.errorMessage.missingContainer=File container must exist.
+AbstractDoxiaWizardPage.errorMessage.nonWritable=Project must be writable.
+AbstractDoxiaWizardPage.errorMessage.missingFile=File name must be specified.
+AbstractDoxiaWizardPage.errorMessage.nonValidFile=File name must be valid.
+AbstractDoxiaWizardPage.errorMessage.nonValidExtension=File extension must be \"{0}\"
+AbstractDoxiaWizardPage.errorMessage.duplicatedFile=File already exist
+
+#
+# Doxia controls
+#
+AddLinkDialog.url.label=URL:
+AddLinkDialog.name.label=Name:
+AddLinkDialog.title.label=Add a link
+AddTableDialog.rows.label=Number of rows:
+AddTableDialog.columns.label=Number of columns:
+AddTableDialog.style.label=Table style:
+AddTableDialog.style.centered.label=Centered
+AddTableDialog.style.leftAligned.label=Left-Aligned
+AddTableDialog.style.rightAligned.label=Right-Aligned
+AddTableDialog.caption.label=Table caption
+AddTableDialog.title.label=Add a table
+
+#
+# Doxia composite
+#
+BrowserComposite.notCreated=Browser not created
+BrowserComposite.back.label=Back
+BrowserComposite.forward.label=Forward
+BrowserComposite.stop.label=Stop
+BrowserComposite.refresh.label=Refresh

Propchange: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/resources/org/apache/maven/doxia/ide/eclipse/common/ui/CommonPluginMessages.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/doxia-tools/trunk/doxia-ide/eclipse/plugins/org.apache.maven.doxia.ide.eclipse.common.ui/src/main/resources/org/apache/maven/doxia/ide/eclipse/common/ui/CommonPluginMessages.properties
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision