Author: fmancinelli
Date: 2008-02-13 20:21:22 +0100 (Wed, 13 Feb 2008)
New Revision: 7702
Added:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/.settings/
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/.settings/org.eclipse.jdt.core.prefs
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetSelection.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetWizard.java
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/WorkingSet.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/ManageWorkingSetsDialog.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiRemoteDAO.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/WorkingSetSelection.java
Log:
XECLIPSE-73
Added working set edition feature
Added:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/.settings/org.eclipse.jdt.core.prefs
2008-02-13 19:21:22 UTC (rev 7702)
@@ -0,0 +1,7 @@
+#Wed Feb 06 23:14:30 CET 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/WorkingSet.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/WorkingSet.java
2008-02-13 19:16:23 UTC (rev 7701)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/WorkingSet.java
2008-02-13 19:21:22 UTC (rev 7702)
@@ -21,6 +21,7 @@
package org.xwiki.eclipse;
import java.io.Serializable;
+import java.util.Formatter;
import java.util.HashSet;
import java.util.Set;
@@ -191,4 +192,21 @@
this.name = name;
}
+ @Override
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+ Formatter f = new Formatter(sb);
+ f.format("%s: [", name);
+ for(String id : ids) {
+ f.format("%s ", id);
+ }
+ f.format("]\n");
+
+ return f.toString();
+
+ }
+
+
+
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/ManageWorkingSetsDialog.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/ManageWorkingSetsDialog.java
2008-02-13 19:16:23 UTC (rev 7701)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/ManageWorkingSetsDialog.java
2008-02-13 19:21:22 UTC (rev 7702)
@@ -42,176 +42,229 @@
import org.xwiki.eclipse.WorkingSet;
import org.xwiki.eclipse.WorkingSetManager;
import org.xwiki.eclipse.XWikiEclipseConstants;
+import org.xwiki.eclipse.wizards.EditWorkingSetWizard;
import org.xwiki.eclipse.wizards.NewWorkingSetWizard;
import org.xwiki.plugins.eclipse.XWikiEclipsePlugin;
public class ManageWorkingSetsDialog extends Dialog
{
- public ManageWorkingSetsDialog(Shell parentShell)
- {
- super(parentShell);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- }
+ public ManageWorkingSetsDialog(Shell parentShell)
+ {
+ super(parentShell);
+ setShellStyle(getShellStyle() | SWT.RESIZE);
+ }
- @Override
- protected void configureShell(Shell shell)
- {
- super.configureShell(shell);
+ @Override
+ protected void configureShell(Shell shell)
+ {
+ super.configureShell(shell);
- shell.setText("Manage working sets");
- shell.setSize(600, 300);
+ shell.setText("Manage working sets");
+ shell.setSize(600, 300);
- }
+ }
- @Override
- protected Control createDialogArea(Composite parent)
- {
- Composite composite = new Composite(parent, SWT.NONE);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(
- composite);
- GridLayoutFactory.fillDefaults().margins(10,
10).numColumns(2).applyTo(composite);
+ @Override
+ protected Control createDialogArea(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(composite);
+ GridLayoutFactory.fillDefaults().margins(10,
10).numColumns(2).applyTo(
+ composite);
- final TableViewer tableViewer = new TableViewer(composite, SWT.BORDER);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(
- tableViewer.getControl());
- tableViewer.setContentProvider(new IStructuredContentProvider()
- {
+ final TableViewer tableViewer = new TableViewer(composite,
SWT.BORDER);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(tableViewer.getControl());
+ tableViewer.setContentProvider(new IStructuredContentProvider()
+ {
- public void dispose()
- {
- }
+ public void dispose()
+ {
+ }
- public void inputChanged(Viewer viewer, Object oldInput, Object
newInput)
- {
- }
+ public void inputChanged(Viewer viewer, Object oldInput,
+ Object newInput)
+ {
+ }
- public Object[] getElements(Object inputElement)
- {
- return
WorkingSetManager.getDefault().getWorkingSets().toArray();
- }
- });
+ public Object[] getElements(Object inputElement)
+ {
+ return
WorkingSetManager.getDefault().getWorkingSets()
+ .toArray();
+ }
+ });
- tableViewer.setLabelProvider(new LabelProvider()
- {
+ tableViewer.setLabelProvider(new LabelProvider()
+ {
- @Override
- public String getText(Object element)
- {
- if (element instanceof WorkingSet) {
- WorkingSet workingSet = (WorkingSet) element;
+ @Override
+ public String getText(Object element)
+ {
+ if (element instanceof WorkingSet)
+ {
+ WorkingSet workingSet = (WorkingSet)
element;
- return workingSet.getName();
- }
+ return workingSet.getName();
+ }
- return super.getText(element);
- }
+ return super.getText(element);
+ }
- @Override
- public Image getImage(Object element)
- {
- if (element instanceof WorkingSet) {
- return XWikiEclipsePlugin.getImageDescriptor(
- XWikiEclipseConstants.WORKING_SET_ICON).createImage();
- }
+ @Override
+ public Image getImage(Object element)
+ {
+ if (element instanceof WorkingSet)
+ {
+ return
XWikiEclipsePlugin.getImageDescriptor(
+
XWikiEclipseConstants.WORKING_SET_ICON)
+ .createImage();
+ }
- return super.getImage(element);
- }
+ return super.getImage(element);
+ }
- });
- tableViewer.setInput(WorkingSetManager.getDefault().getWorkingSets());
+ });
+
tableViewer.setInput(WorkingSetManager.getDefault().getWorkingSets());
- Composite buttonBar = new Composite(composite, SWT.NONE);
- GridLayoutFactory.fillDefaults().applyTo(buttonBar);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false,
true).applyTo(
- buttonBar);
+ Composite buttonBar = new Composite(composite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(buttonBar);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(false,
+ true).applyTo(buttonBar);
- Button button = new Button(buttonBar, SWT.PUSH);
- button.setText("New...");
- button.addSelectionListener(new SelectionListener()
- {
+ Button button = new Button(buttonBar, SWT.PUSH);
+ button.setText("New...");
+ button.addSelectionListener(new SelectionListener()
+ {
- public void widgetDefaultSelected(SelectionEvent e)
- {
- }
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ }
- public void widgetSelected(SelectionEvent event)
- {
- try {
- NewWorkingSetWizard wizard = new NewWorkingSetWizard();
+ public void widgetSelected(SelectionEvent event)
+ {
+ try
+ {
+ NewWorkingSetWizard wizard = new
NewWorkingSetWizard();
- WizardDialog dialog = new WizardDialog(getShell(), wizard);
- dialog.create();
- dialog.open();
- tableViewer.refresh();
- } catch (Exception e) {
- e.printStackTrace();
- }
+ WizardDialog dialog = new
WizardDialog(getShell(), wizard);
+ dialog.create();
+ dialog.open();
+ tableViewer.refresh();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
- }
+ }
- });
+ });
- button = new Button(buttonBar, SWT.PUSH);
- button.setText("Remove");
- button.addSelectionListener(new SelectionListener()
- {
+ button = new Button(buttonBar, SWT.PUSH);
+ button.setText("Remove");
+ button.addSelectionListener(new SelectionListener()
+ {
- public void widgetDefaultSelected(SelectionEvent e)
- {
- // TODO Auto-generated method stub
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ // TODO Auto-generated method stub
- }
+ }
- public void widgetSelected(SelectionEvent e)
- {
- IStructuredSelection selection =
- (IStructuredSelection) tableViewer.getSelection();
- if (!selection.isEmpty()) {
- Object selectedObject = selection.getFirstElement();
- if (selectedObject instanceof WorkingSet) {
- WorkingSet workingSet = (WorkingSet) selectedObject;
+ public void widgetSelected(SelectionEvent e)
+ {
+ IStructuredSelection selection =
(IStructuredSelection) tableViewer
+ .getSelection();
+ if (!selection.isEmpty())
+ {
+ Object selectedObject =
selection.getFirstElement();
+ if (selectedObject instanceof
WorkingSet)
+ {
+ WorkingSet workingSet =
(WorkingSet) selectedObject;
- MessageBox messageBox =
- new MessageBox(getShell(), SWT.YES | SWT.NO |
SWT.ICON_QUESTION);
- messageBox.setMessage(String.format(
- "Do you really want to remove the working set
'%s'?", workingSet
- .getName()));
- int result = messageBox.open();
- if (result == SWT.YES) {
- WorkingSetManager.getDefault().remove(workingSet);
- tableViewer.refresh();
- }
- }
- }
+ MessageBox messageBox = new
MessageBox(getShell(),
+ SWT.YES |
SWT.NO | SWT.ICON_QUESTION);
+ messageBox
+
.setMessage(String
+
.format(
+
"Do you really want to remove the working set '%s'?",
+
workingSet.getName()));
+ int result = messageBox.open();
+ if (result == SWT.YES)
+ {
+
WorkingSetManager.getDefault().remove(workingSet);
+ tableViewer.refresh();
+ }
+ }
+ }
- }
+ }
- });
+ });
- return composite;
- }
+ button = new Button(buttonBar, SWT.PUSH);
+ button.setText("Edit...");
+ button.addSelectionListener(new SelectionListener()
+ {
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ }
- @Override
- protected void createButtonsForButtonBar(Composite parent)
- {
- Button button =
- createButton(parent, IDialogConstants.CLOSE_ID,
IDialogConstants.CLOSE_LABEL, true);
- button.addSelectionListener(new SelectionListener()
- {
+ public void widgetSelected(SelectionEvent event)
+ {
+ IStructuredSelection selection =
(IStructuredSelection) tableViewer
+ .getSelection();
+ if (!selection.isEmpty())
+ {
+ Object selectedObject =
selection.getFirstElement();
+ if (selectedObject instanceof
WorkingSet)
+ {
+ WorkingSet workingSet =
(WorkingSet) selectedObject;
- public void widgetDefaultSelected(SelectionEvent e)
- {
- // TODO Auto-generated method stub
+ try
+ {
+ EditWorkingSetWizard
wizard = new EditWorkingSetWizard(
+
workingSet);
- }
+ WizardDialog dialog =
new WizardDialog(getShell(),
+ wizard);
+ dialog.create();
+ dialog.open();
+ tableViewer.refresh();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
- public void widgetSelected(SelectionEvent e)
- {
- close();
- }
+ }
+ }
+ }
+ });
- });
+ return composite;
+ }
- }
+ @Override
+ protected void createButtonsForButtonBar(Composite parent)
+ {
+ Button button = createButton(parent, IDialogConstants.CLOSE_ID,
+ IDialogConstants.CLOSE_LABEL, true);
+ button.addSelectionListener(new SelectionListener()
+ {
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void widgetSelected(SelectionEvent e)
+ {
+ close();
+ }
+
+ });
+
+ }
+
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiRemoteDAO.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiRemoteDAO.java
2008-02-13 19:16:23 UTC (rev 7701)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiRemoteDAO.java
2008-02-13 19:21:22 UTC (rev 7702)
@@ -72,7 +72,7 @@
swizzleXWiki.setConvertor(new IdentityObjectConvertor());
}
}
-
+
} catch (Exception e) {
throw new XWikiDAOException(e);
}
@@ -84,7 +84,7 @@
*
* @throws XWikiDAOException
*/
- public void close() throws XWikiDAOException
+ public synchronized void close() throws XWikiDAOException
{
try {
swizzleXWiki.logout();
@@ -98,10 +98,11 @@
* @throws XWikiDAOException
*/
@SuppressWarnings("unchecked")
- public List<SpaceSummary> getSpaces() throws XWikiDAOException
+ public synchronized List<SpaceSummary> getSpaces() throws XWikiDAOException
{
- try {
- return swizzleXWiki.getSpaces();
+ try {
+ List<SpaceSummary> spaces = swizzleXWiki.getSpaces();
+ return spaces;
} catch (Exception e) {
throw new XWikiDAOException(e);
}
@@ -112,7 +113,7 @@
* @return The information about the remote space.
* @throws XWikiDAOException
*/
- public Space getSpace(String key) throws XWikiDAOException
+ public synchronized Space getSpace(String key) throws XWikiDAOException
{
try {
return swizzleXWiki.getSpace(key);
@@ -127,7 +128,7 @@
* @throws XWikiDAOException
*/
@SuppressWarnings("unchecked")
- public List<PageSummary> getPages(String spaceKey) throws XWikiDAOException
+ public synchronized List<PageSummary> getPages(String spaceKey) throws
XWikiDAOException
{
try {
return swizzleXWiki.getPages(spaceKey);
@@ -141,7 +142,7 @@
* @return All the page information for the page identified by the given
id.
* @throws XWikiDAOException
*/
- public Page getPage(String id) throws XWikiDAOException
+ public synchronized Page getPage(String id) throws XWikiDAOException
{
try {
return swizzleXWiki.getPage(id);
@@ -156,7 +157,7 @@
* @param page The page information to be stored.
* @throws XWikiDAOException
*/
- public void storePage(Page page) throws XWikiDAOException
+ public synchronized void storePage(Page page) throws XWikiDAOException
{
try {
swizzleXWiki.storePage(page);
@@ -165,7 +166,7 @@
}
}
- public Space createSpace(String key, String name, String description)
+ public synchronized Space createSpace(String key, String name, String
description)
throws XWikiDAOException
{
Space space = new Space();
@@ -183,7 +184,7 @@
return space;
}
- public Page createPage(String spaceKey, String title, String content)
+ public synchronized Page createPage(String spaceKey, String title, String
content)
throws XWikiDAOException
{
Page page = new Page();
@@ -201,7 +202,7 @@
return page;
}
- public void removePage(String id) throws XWikiDAOException
+ public synchronized void removePage(String id) throws XWikiDAOException
{
try {
swizzleXWiki.removePage(id);
@@ -212,7 +213,7 @@
}
- public void removeSpace(String key) throws XWikiDAOException
+ public synchronized void removeSpace(String key) throws XWikiDAOException
{
try {
swizzleXWiki.removeSpace(key);
Added:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetSelection.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetSelection.java
(rev 0)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetSelection.java
2008-02-13 19:21:22 UTC (rev 7702)
@@ -0,0 +1,415 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ */
+package org.xwiki.eclipse.wizards;
+
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.xwiki.eclipse.WorkingSet;
+import org.xwiki.eclipse.WorkingSetFilter;
+import org.xwiki.eclipse.XWikiConnectionManager;
+import org.xwiki.eclipse.XWikiEclipseConstants;
+import org.xwiki.eclipse.model.IXWikiConnection;
+import org.xwiki.eclipse.model.IXWikiPage;
+import org.xwiki.eclipse.model.IXWikiSpace;
+import org.xwiki.eclipse.views.XWikiExplorerContentProvider;
+import org.xwiki.plugins.eclipse.XWikiEclipsePlugin;
+
+
+public class EditWorkingSetSelection extends WizardPage
+{
+ private WorkingSet workingSet;
+ private TreeViewer treeViewer;
+ private TreeViewer previewTreeViewer;
+ private WorkingSetFilter workingSetFilter;
+
+ class TV extends TreeViewer {
+ private WorkingSet workingSet;
+
+ public TV(Composite parent, int style, WorkingSet workingset)
+ {
+ super(parent, style);
+ this.workingSet = workingset;
+ }
+
+ @Override
+ public void add(Object parentElementOrTreePath, Object[]
childElements)
+ {
+ TreeItem item;
+
+ super.add(parentElementOrTreePath, childElements);
+
+ for(Object c : childElements) {
+ item = (TreeItem) findItem(c);
+ setChecked(item, c);
+ }
+ }
+
+ @Override
+ protected Item newItem(Widget parent, int flags, int ix)
+ {
+ if(parent instanceof TreeItem) {
+ setChecked((TreeItem)parent, parent.getData());
+ }
+ return super.newItem(parent, flags, ix);
+ }
+
+ private void setChecked(TreeItem item, Object o) {
+ if(o instanceof IXWikiSpace) {
+ IXWikiSpace xwikiSpace = (IXWikiSpace) o;
+
item.setChecked(workingSet.contains(xwikiSpace));
+ }
+ else if(o instanceof IXWikiPage) {
+ IXWikiPage xwikiPage = (IXWikiPage) o;
+ item.setChecked(workingSet.contains(xwikiPage));
+ }
+ else if(o instanceof IXWikiConnection) {
+ IXWikiConnection xwikiConnection =
(IXWikiConnection) o;
+
item.setChecked(workingSet.contains(xwikiConnection));
+ }
+ }
+
+
+ }
+
+
+ protected EditWorkingSetSelection(String pageName, WorkingSet
workingSet)
+ {
+ super(pageName);
+ setTitle(String.format("Edit working set %s",
workingSet.getName()));
+ setImageDescriptor(XWikiEclipsePlugin
+
.getImageDescriptor(XWikiEclipseConstants.WORKING_SET_BANNER));
+
+ this.workingSet = workingSet;
+ }
+
+ private void checkPath(TreeItem item, boolean checked, boolean grayed)
+ {
+ if (item == null) {
+ return;
+ }
+
+ if (grayed) {
+ checked = true;
+ } else {
+ int index = 0;
+ TreeItem[] items = item.getItems();
+ while (index < items.length) {
+ TreeItem child = items[index];
+ if (child.getGrayed() || checked != child.getChecked()) {
+ checked = grayed = true;
+ break;
+ }
+ index++;
+ }
+ }
+
+ item.setChecked(checked);
+ item.setGrayed(grayed);
+ updateWorkingSet(workingSet, item.getData(), checked);
+ checkPath(item.getParentItem(), checked, grayed);
+ }
+
+ private void checkItems(TreeItem item, boolean checked)
+ {
+ item.setGrayed(false);
+ item.setChecked(checked);
+ TreeItem[] items = item.getItems();
+ for (int i = 0; i < items.length; i++) {
+ checkItems(items[i], checked);
+ updateWorkingSet(workingSet, items[i].getData(),
+ checked);
+ }
+ }
+
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(composite);
+
+ Group group = new Group(composite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().numColumns(2).margins(5,
5).applyTo(group);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
false).applyTo(group);
+
+ Label label = new Label(group, SWT.NONE);
+ label.setText("Working set name:");
+
+ final Text workingSetNameText = new Text(group, SWT.BORDER);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
false).applyTo(
+ workingSetNameText);
+ workingSetNameText.addModifyListener(new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+ workingSet.setName(workingSetNameText.getText());
+ getContainer().updateButtons();
+ }
+ });
+
+ SashForm sashForm = new SashForm(composite, SWT.HORIZONTAL);
+ GridLayoutFactory.fillDefaults().numColumns(2).applyTo(sashForm);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(
+ sashForm);
+
+ group = new Group(sashForm, SWT.NONE);
+ GridLayoutFactory.fillDefaults().margins(5, 5).applyTo(group);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(group);
+ group.setText("Working set content selection");
+
+ final TV treeViewer = new TV(group, SWT.CHECK, workingSet);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(
+ treeViewer.getControl());
+ treeViewer.setComparator(new ViewerComparator());
+ treeViewer.setContentProvider(new
XWikiExplorerContentProvider(treeViewer));
+ treeViewer.setLabelProvider(new WorkbenchLabelProvider());
+ treeViewer.setInput(XWikiConnectionManager.getDefault());
+ treeViewer.getTree().addListener(SWT.Selection, new Listener()
+ {
+ public void handleEvent(Event event)
+ {
+ if (event.detail == SWT.CHECK) {
+ TreeItem item = (TreeItem) event.item;
+ boolean checked = item.getChecked();
+ checkItems(item, checked);
+ checkPath(item.getParentItem(), checked, false);
+
+ updateWorkingSet(workingSet, item.getData(),
+ checked);
+
+ workingSetFilter =
+ new WorkingSetFilter(workingSet);
+ previewTreeViewer.setFilters(new ViewerFilter[]
{workingSetFilter});
+ }
+ }
+ });
+
+
+
+ group = new Group(sashForm, SWT.NONE);
+ GridLayoutFactory.fillDefaults().margins(5, 5).applyTo(group);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(group);
+ group.setText("Selected working set preview");
+
+ previewTreeViewer = new TreeViewer(group, SWT.NONE);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(
+ previewTreeViewer.getControl());
+ previewTreeViewer.setComparator(new ViewerComparator());
+ previewTreeViewer.setContentProvider(new
XWikiExplorerContentProvider(previewTreeViewer));
+ previewTreeViewer.setLabelProvider(new WorkbenchLabelProvider());
+ previewTreeViewer.setInput(XWikiConnectionManager.getDefault());
+
+ workingSetFilter = new WorkingSetFilter(workingSet);
+ previewTreeViewer.addFilter(workingSetFilter);
+
+ sashForm.setWeights(new int[] {50, 50});
+
+ label = new Label(composite, SWT.BORDER | SWT.WRAP);
+ label
+ .setText("To select all pages in a space, first expand the space
node and then click on the checkbox next to it.");
+
label.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_DARK_GRAY));
+
+ setControl(composite);
+
+ }
+
+ public void createControl2(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(composite);
+
+ Composite labelComposite = new Composite(composite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().numColumns(2).margins(5,
5).applyTo(
+ labelComposite);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ false).applyTo(labelComposite);
+
+ Label label = new Label(labelComposite, SWT.NONE);
+ label.setText("Working set name:");
+
+ final Text workingSetNameText = new Text(labelComposite,
SWT.BORDER);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ false).applyTo(workingSetNameText);
+ workingSetNameText.addModifyListener(new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+
workingSet.setName(workingSetNameText.getText());
+ getContainer().updateButtons();
+ }
+ });
+
+ /**
****************************************************************** */
+
+ Composite mainComposite = new Composite(composite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().numColumns(3).margins(5,
5).applyTo(
+ mainComposite);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(mainComposite);
+
+ Group group = new Group(mainComposite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(group);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(group);
+ group.setText("Working set content selection");
+
+ treeViewer = new TreeViewer(group, SWT.MULTI);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(treeViewer.getControl());
+ treeViewer.setComparator(new ViewerComparator());
+ treeViewer.setContentProvider(new XWikiExplorerContentProvider(
+ treeViewer));
+ treeViewer.setLabelProvider(new WorkbenchLabelProvider());
+ treeViewer.setInput(XWikiConnectionManager.getDefault());
+
+
+ Composite buttonComposite = new Composite(mainComposite,
SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(buttonComposite);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(false,
+ true).applyTo(buttonComposite);
+
+ Button button = new Button(buttonComposite, SWT.PUSH);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ false).applyTo(button);
+ button.setText("Add ->");
+ button.addSelectionListener(new SelectionListener()
+ {
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ // TODO Auto-generated method stub
+ }
+
+ public void widgetSelected(SelectionEvent e)
+ {
+ IStructuredSelection selection =
(IStructuredSelection) treeViewer
+ .getSelection();
+ if (!selection.isEmpty())
+ {
+ for (Object element :
selection.toArray())
+ {
+ if (element instanceof
IXWikiPage)
+ {
+ IXWikiPage page =
(IXWikiPage) element;
+ workingSet.add(page);
+ }
+ }
+ }
+ }
+ });
+
+ button = new Button(buttonComposite, SWT.PUSH);
+ button.addSelectionListener(new SelectionListener()
+ {
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ // TODO Auto-generated method stub
+ }
+
+ public void widgetSelected(SelectionEvent e)
+ {
+ IStructuredSelection selection =
(IStructuredSelection) treeViewer
+ .getSelection();
+ if (!selection.isEmpty())
+ {
+ for (Object element :
selection.toArray())
+ {
+ System.out.format("Removing
%s\n", element);
+ }
+ }
+ }
+ });
+
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ false).applyTo(button);
+ button.setText("<- Remove");
+
+ group = new Group(mainComposite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(group);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(group);
+ group.setText("Working set preview");
+
+ previewTreeViewer = new TreeViewer(group, SWT.MULTI);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(previewTreeViewer.getControl());
+ previewTreeViewer.setComparator(new ViewerComparator());
+ previewTreeViewer.setContentProvider(new
XWikiExplorerContentProvider(
+ previewTreeViewer));
+ previewTreeViewer.setLabelProvider(new
WorkbenchLabelProvider());
+ previewTreeViewer.setInput(XWikiConnectionManager.getDefault());
+
+
+
+ setControl(composite);
+ }
+
+ private void updateWorkingSet(WorkingSet workingSet, Object object,
boolean add)
+ {
+ if (object instanceof IXWikiConnection) {
+ IXWikiConnection connection = (IXWikiConnection) object;
+ if (add) {
+ workingSet.add(connection);
+ } else {
+ workingSet.remove(connection);
+ }
+ }
+
+ if (object instanceof IXWikiSpace) {
+ IXWikiSpace space = (IXWikiSpace) object;
+ if (add) {
+ workingSet.add(space);
+ } else {
+ workingSet.remove(space);
+ }
+ }
+
+ if (object instanceof IXWikiPage) {
+ IXWikiPage page = (IXWikiPage) object;
+ if (add) {
+ workingSet.add(page);
+ } else {
+ workingSet.remove(page);
+ }
+ }
+ }
+
+
+}
Added:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetWizard.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetWizard.java
(rev 0)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/EditWorkingSetWizard.java
2008-02-13 19:21:22 UTC (rev 7702)
@@ -0,0 +1,60 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ */
+package org.xwiki.eclipse.wizards;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.xwiki.eclipse.WorkingSet;
+
+public class EditWorkingSetWizard extends Wizard implements INewWizard
+{
+ private WorkingSet workingSet;
+
+ public EditWorkingSetWizard(WorkingSet workingSet)
+ {
+ super();
+ this.workingSet = workingSet;
+ }
+
+ @Override
+ public boolean performFinish()
+ {
+ return true;
+ }
+
+ @Override
+ public void addPages()
+ {
+ addPage(new EditWorkingSetSelection("Working set selection",
workingSet));
+ }
+
+ @Override
+ public boolean canFinish()
+ {
+ return true;
+ }
+
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {
+ }
+}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/WorkingSetSelection.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/WorkingSetSelection.java
2008-02-13 19:16:23 UTC (rev 7701)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/wizards/WorkingSetSelection.java
2008-02-13 19:21:22 UTC (rev 7702)
@@ -24,6 +24,7 @@
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
@@ -157,14 +158,10 @@
updateWorkingSet(newWorkingSetWizardState.getWorkingSet(),
item.getData(),
checked);
-
- if (workingSetFilter != null) {
- previewTreeViewer.removeFilter(workingSetFilter);
- }
-
+
workingSetFilter =
new
WorkingSetFilter(newWorkingSetWizardState.getWorkingSet());
- previewTreeViewer.addFilter(workingSetFilter);
+ previewTreeViewer.setFilters(new ViewerFilter[]
{workingSetFilter});
}
}
});
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications