Author: yzhishko
Date: 2010-03-10 08:09:11 -0500 (Wed, 10 Mar 2010)
New Revision: 20731
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPreview.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTableDragListener.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTreeDragListener.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSContainer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSRuleContainer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSStyleSheetContainer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSClassSelectionChangedEvent.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSSelectorEventManager.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTableSelectionChangedEvent.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTreeSelectionChangedEvent.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/ICSSClassSelectionChangedListener.java
Removed:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTableDragListener.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTreeDragListener.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTransfer.java
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPartComposite.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSStyleClassSelector.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSSelectorTreeModel.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSTreeNode.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTableViewer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeLabelProvider.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeViewer.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5964 ,
https://jira.jboss.org/jira/browse/JBIDE-3288 . Preview was added.
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPartComposite.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPartComposite.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPartComposite.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -13,12 +13,15 @@
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetAdapter;
@@ -27,8 +30,6 @@
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
@@ -47,14 +48,19 @@
import org.jboss.tools.jst.jsp.messages.JstUIMessages;
import org.jboss.tools.jst.jsp.outline.cssdialog.common.Constants;
import org.jboss.tools.jst.jsp.outline.cssdialog.common.StyleAttributes;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.dnd.CSSTableDragListener;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.dnd.CSSTreeDragListener;
import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSJSPRecognizer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSRuleContainer;
import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTableModel;
import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTreeModel;
import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSTreeNode;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection.CSSClassSelectionChangedEvent;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection.CSSSelectorEventManager;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection.ICSSClassSelectionChangedListener;
import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorFilter;
import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorTableViewer;
import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorTreeViewer;
-import org.w3c.dom.css.CSSRule;
/**
*
@@ -65,9 +71,9 @@
public class CSSSelectorPartComposite extends Composite implements
SelectionListener {
- private static final int LIST_HEIGHT = 500;
+ private static final int VIEWER_HEIGHT = 500;
private static final int BUTTOND_WIDTH = 50;
- private static final int LIST_WIDTH = 175;
+ private static final int VIEWER_WIDTH = 175;
/** Existing font family */
Composite buttonsContainer;
@@ -80,13 +86,24 @@
private StyleAttributes styleAttributes;
private CSSSelectorTreeModel styleClassTreeModel;
private CSSSelectorFilter filter;
+ private List<ICSSClassSelectionChangedListener> changedListeners = new
ArrayList<ICSSClassSelectionChangedListener>(
+ 0);
public CSSSelectorPartComposite(StyleAttributes styleAttributes,
Composite parentComposite, String setClasses) {
- super(parentComposite, SWT.NONE);
+ super(parentComposite, SWT.BORDER);
this.setClasses = setClasses;
this.styleAttributes = styleAttributes;
creatSelectorPart();
+ addDisposeListener(new DisposeListener() {
+
+ public void widgetDisposed(DisposeEvent e) {
+ for (int i = 0; i < changedListeners.size(); i++) {
+ removeCSSClassSelectionChangedListener(changedListeners
+ .get(i));
+ }
+ }
+ });
}
private void creatSelectorPart() {
@@ -103,6 +120,9 @@
if (!(editorPart instanceof JSPMultiPageEditor)) {
return;
}
+ String[] selectedClasses = parseSetClasses();
+ selectedClassesTableViewer.setModel(new CSSSelectorTableModel(
+ selectedClasses));
CSSJSPRecognizer recognizer = new CSSJSPRecognizer(
(JSPMultiPageEditor) editorPart);
if (recognizer.parseCSS() == CSSJSPRecognizer.VOID_RESULT) {
@@ -111,15 +131,12 @@
styleClassTreeModel = recognizer.getCssStyleClassTreeModel();
allCSSClassStyles = recognizer.getCSSStyleMap();
allCSSStyleClassViewer.setModel(styleClassTreeModel);
- String[] selectedClasses = parseSetClasses();
- selectedClassesTableViewer.setModel(new CSSSelectorTableModel(
- selectedClasses));
updateStyles();
}
private void initDND() {
Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-
+
allCSSStyleClassViewer.addDragSupport(DND.DROP_MOVE, types,
new CSSTreeDragListener(this, allCSSStyleClassViewer,
selectedClassesTableViewer));
@@ -127,27 +144,33 @@
selectedClassesTableViewer.addDragSupport(DND.DROP_MOVE, types,
new CSSTableDragListener(this, allCSSStyleClassViewer,
selectedClassesTableViewer));
-
- allCSSStyleClassViewer.addDropSupport(DND.DROP_MOVE, types, new DropTargetAdapter(){
- @Override
- public void drop(DropTargetEvent event) {
- if (event.data == null ||
event.data.equals(CSSSelectorTreeViewer.CSS_SELECTOR_TREE_VIWER_ID)) {
- event.detail = DND.DROP_NONE;
- return;
- }
- }
- });
-
- selectedClassesTableViewer.addDropSupport(DND.DROP_MOVE, types, new
DropTargetAdapter(){
- @Override
- public void drop(DropTargetEvent event) {
- if (event.data == null ||
event.data.equals(CSSSelectorTableViewer.CSS_SELECTOR_TABLE_VIWER_ID)) {
- event.detail = DND.DROP_NONE;
- return;
- }
- }
- });
+ allCSSStyleClassViewer.addDropSupport(DND.DROP_MOVE, types,
+ new DropTargetAdapter() {
+ @Override
+ public void drop(DropTargetEvent event) {
+ if (event.data == null
+ || event.data
+ .equals(CSSSelectorTreeViewer.CSS_SELECTOR_TREE_VIWER_ID)) {
+ event.detail = DND.DROP_NONE;
+ return;
+ }
+ }
+ });
+
+ selectedClassesTableViewer.addDropSupport(DND.DROP_MOVE, types,
+ new DropTargetAdapter() {
+ @Override
+ public void drop(DropTargetEvent event) {
+ if (event.data == null
+ || event.data
+ .equals(CSSSelectorTableViewer.CSS_SELECTOR_TABLE_VIWER_ID)) {
+ event.detail = DND.DROP_NONE;
+ return;
+ }
+ }
+ });
+
}
private void initListeners() {
@@ -163,7 +186,7 @@
TreeItem selectedItem = selectedItems[selectedItems.length - 1];
CSSTreeNode treeNode = (CSSTreeNode) selectedItem
.getData();
- if (!(treeNode.getCssResource() instanceof CSSRule)) {
+ if (!(treeNode.getCSSContainer() instanceof CSSRuleContainer)) {
if (allCSSStyleClassViewer
.getExpandedState(treeNode)) {
allCSSStyleClassViewer.collapseToLevel(
@@ -179,18 +202,7 @@
}
}
});
-
- tree.addMouseListener(new MouseAdapter() {
-
- public void mouseDown(MouseEvent e) {
- if (tree.getSelectionCount() > 0) {
- selectedClassesTableViewer.getTable().deselectAll();
- leftButton.setEnabled(false);
- rightButton.setEnabled(true);
- }
- }
- });
-
+
selectedClassesTableViewer
.addDoubleClickListener(new IDoubleClickListener() {
@@ -206,19 +218,53 @@
});
- table.addMouseListener(new MouseAdapter() {
+ allCSSStyleClassViewer
+ .addSelectionChangedListener(new ISelectionChangedListener() {
- @Override
- public void mouseDown(MouseEvent e) {
- if (table.getSelectionCount() > 0) {
- tree.deselectAll();
- rightButton.setEnabled(false);
- leftButton.setEnabled(true);
- }
- }
+ public void selectionChanged(
+ final SelectionChangedEvent event) {
+ if (!event.getSelection().isEmpty()) {
+ rightButton.setEnabled(true);
+ leftButton.setEnabled(false);
+ } else {
+ rightButton.setEnabled(false);
+ leftButton.setEnabled(false);
+ }
+ Thread thread = new Thread("TreeSelectorWorker") { //$NON-NLS-1$
+ @Override
+ public void run() {
+ fireClassSelectionChanged(CSSSelectorEventManager
+ .getInstance().createTreeSelectionChangedEvent(
+ event, allCSSStyleClassViewer.getModel()));
+ }
+ };
+ thread.start();
+ }
+ });
- });
+ selectedClassesTableViewer
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(final SelectionChangedEvent event) {
+ if (!event.getSelection().isEmpty()) {
+ rightButton.setEnabled(false);
+ leftButton.setEnabled(true);
+ } else {
+ rightButton.setEnabled(false);
+ leftButton.setEnabled(false);
+ }
+ Thread thread = new Thread("TableSelectorWorker") { //$NON-NLS-1$
+ @Override
+ public void run() {
+ fireClassSelectionChanged(CSSSelectorEventManager
+ .getInstance().createTableSelectionChangedEvent(
+ event, allCSSStyleClassViewer.getModel()));
+ }
+ };
+ thread.start();
+ }
+ });
+
rightButton.addSelectionListener(this);
leftButton.addSelectionListener(this);
}
@@ -317,7 +363,7 @@
if (selectedItems != null && selectedItems.length > 0) {
for (int i = 0; i < selectedItems.length; i++) {
TreeItem item = selectedItems[i];
- if (!(((CSSTreeNode) item.getData()).getCssResource() instanceof CSSRule)) {
+ if (!(((CSSTreeNode) item.getData()).getCSSContainer() instanceof CSSRuleContainer))
{
continue;
}
selectedClassesTableViewer.add(((CSSTreeNode) item.getData())
@@ -335,13 +381,13 @@
setLayoutData(gridData);
gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
- gridData.heightHint = LIST_HEIGHT;
- gridData.widthHint = LIST_WIDTH;
+ gridData.heightHint = VIEWER_HEIGHT;
+ gridData.widthHint = VIEWER_WIDTH;
allCSSStyleClassViewer.getTree().setLayoutData(gridData);
gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
- gridData.heightHint = LIST_HEIGHT;
- gridData.widthHint = LIST_WIDTH;
+ gridData.heightHint = VIEWER_HEIGHT;
+ gridData.widthHint = VIEWER_WIDTH;
selectedClassesTableViewer.getTable().setLayoutData(gridData);
final GridLayout btmContGridLayout = new GridLayout();
@@ -358,7 +404,7 @@
}
- void updateStyles() {
+ public void updateStyles() {
String[] selectedItems = getItemsFromSelectedTable();
styleAttributes.clear();
if (filter == null) {
@@ -427,4 +473,20 @@
return selectedItemsList.toArray(new String[0]);
}
+ private void fireClassSelectionChanged(CSSClassSelectionChangedEvent event) {
+ for (int i = 0; i < changedListeners.size(); i++) {
+ changedListeners.get(i).classSelectionChanged(event);
+ }
+ }
+
+ public synchronized void addCSSClassSelectionChangedListener(
+ ICSSClassSelectionChangedListener listener) {
+ changedListeners.add(listener);
+ }
+
+ public synchronized void removeCSSClassSelectionChangedListener(
+ ICSSClassSelectionChangedListener listener) {
+ changedListeners.remove(listener);
+ }
+
}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPreview.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPreview.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSSelectorPreview.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,84 @@
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector;
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.css.core.internal.modelhandler.CSSModelLoader;
+import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
+import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule;
+import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet;
+import org.eclipse.wst.css.ui.StructuredTextViewerConfigurationCSS;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSRuleContainer;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection.CSSClassSelectionChangedEvent;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection.ICSSClassSelectionChangedListener;
+import org.w3c.dom.css.CSSRuleList;
+
+@SuppressWarnings("restriction")
+public class CSSSelectorPreview extends Composite implements
+ ICSSClassSelectionChangedListener {
+
+ private StructuredTextViewer viewer;
+ private ICSSModel model;
+ private ICSSStyleSheet styleSheet;
+
+ public CSSSelectorPreview(Composite parent) {
+ super(parent, SWT.BORDER);
+ setLayout(new FillLayout());
+ initPreview();
+ }
+
+ private void initPreview() {
+ StructuredTextViewerConfiguration baseConfiguration = new
StructuredTextViewerConfigurationCSS();
+
+ viewer = new StructuredTextViewer(this, null, null, false, SWT.BORDER
+ | SWT.V_SCROLL | SWT.H_SCROLL);
+ ((StructuredTextViewer) viewer).getTextWidget().setFont(
+ JFaceResources.getFont("org.eclipse.wst.sse.ui.textfont")); //$NON-NLS-1$
+
+ viewer.configure(baseConfiguration);
+ CSSModelLoader cssModelLoader = new CSSModelLoader();
+ IStructuredModel model = cssModelLoader.createModel();
+ this.model = (ICSSModel) model;
+ viewer.setDocument(model.getStructuredDocument());
+ viewer.setEditable(false);
+ }
+
+ public void classSelectionChanged(final CSSClassSelectionChangedEvent event) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ styleSheet = (ICSSStyleSheet) model.getDocument();
+ CSSRuleContainer[] containers = event
+ .getSelectedRuleContainers();
+ if (containers.length != 0) {
+ clearPreview();
+ for (int i = 0; i < containers.length; i++) {
+ appendRuleFromContainer(containers[i]);
+ }
+ }
+ }
+ });
+
+ }
+
+ private void appendRuleFromContainer(CSSRuleContainer container) {
+ StringBuilder builder = new StringBuilder(""); //$NON-NLS-1$
+ ICSSStyleRule rule = (ICSSStyleRule) container.getRule();
+ String text = rule.getCssText();
+ String styleDef = text.substring(text.indexOf('{'));
+ builder.append("." + container.getSelectorName() + styleDef); //$NON-NLS-1$
+ styleSheet.appendRule(styleSheet.createCSSRule(builder.toString()));
+ }
+
+ private void clearPreview() {
+ CSSRuleList ruleList = styleSheet.getCssRules();
+ for (int i = 0; i < ruleList.getLength(); i++) {
+ styleSheet.removeRule(ruleList.item(i));
+ }
+ }
+
+}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSStyleClassSelector.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSStyleClassSelector.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSStyleClassSelector.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -16,21 +16,23 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.common.model.ui.widgets.Split;
import org.jboss.tools.jst.jsp.messages.JstUIMessages;
import org.jboss.tools.jst.jsp.outline.cssdialog.AbstractCSSDialog;
/**
*
* @author yzhishko
- *
+ *
*/
-public class CSSStyleClassSelector extends AbstractCSSDialog{
+public class CSSStyleClassSelector extends AbstractCSSDialog {
private String currentCSSStyleClass;
private CSSSelectorPartComposite cssClassComposite;
private String selectesCSSStylesClasses;
-
+ private CSSSelectorPreview preview;
+
public CSSStyleClassSelector(Shell shell) {
super(shell);
setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX
@@ -40,29 +42,32 @@
@Override
protected Composite createControlComposite(Composite parent) {
// Create down splitter container
- Composite controlsContainer = new Composite(parent, SWT.NONE);
+ Split controlsContainer = new Split(parent, SWT.VERTICAL);
controlsContainer.setLayout(new GridLayout());
controlsContainer.setLayoutData(new GridData(GridData.FILL,
GridData.FILL, true, true));
cssClassComposite = createCSSClassComposite(controlsContainer);
+ preview = createPreviewComposite(controlsContainer);
+ cssClassComposite.addCSSClassSelectionChangedListener(preview);
return controlsContainer;
}
-
+
@Override
protected Control createContents(Composite parent) {
- Composite composite = (Composite)super.createContents(parent);
+ Composite composite = (Composite) super.createContents(parent);
return composite;
}
-
+
private CSSSelectorPartComposite createCSSClassComposite(Composite parent) {
- return new CSSSelectorPartComposite(getStyleAttributes(), parent,
currentCSSStyleClass);
+ return new CSSSelectorPartComposite(getStyleAttributes(), parent,
+ currentCSSStyleClass);
}
public void setCurrentStyleClass(String value) {
currentCSSStyleClass = value;
}
-
- public String getCSSStyleClasses (){
+
+ public String getCSSStyleClasses() {
return selectesCSSStylesClasses;
}
@@ -73,17 +78,21 @@
}
super.buttonPressed(buttonId);
}
-
+
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText(JstUIMessages.CSS_SELECTOR_TITLE);
}
-
+
@Override
protected Control createDialogArea(Composite parent) {
setTitle(JstUIMessages.CSS_SELECTOR_TITLE);
return super.createDialogArea(parent);
}
+
+ private CSSSelectorPreview createPreviewComposite(Composite parent) {
+ return new CSSSelectorPreview(parent);
+ }
}
Deleted:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTableDragListener.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTableDragListener.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTableDragListener.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Tree;
-import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorTableViewer;
-
-/**
- *
- * @author yzhishko
- *
- */
-
-@SuppressWarnings("unused")
-public class CSSTableDragListener implements DragSourceListener {
-
- private Table table;
- private Tree tree;
- private CSSSelectorPartComposite parent;
- private TreeViewer treeViewer;
- private TableViewer tableViewer;
-
- public CSSTableDragListener (CSSSelectorPartComposite parent, TreeViewer treeViewer,
TableViewer tableViewer){
- this.table = tableViewer.getTable();
- this.tree = treeViewer.getTree();
- this.treeViewer = treeViewer;
- this.tableViewer = tableViewer;
- this.parent = parent;
- }
-
- public void dragStart(DragSourceEvent event) {
- event.doit = table.getSelectionCount() > 0;
- }
-
- public void dragSetData(DragSourceEvent event) {
- List<String> selectedItems = new ArrayList<String>(0);
- TableItem[] selectedTableItems = table.getSelection();
- if (selectedTableItems != null) {
- for (int i = 0; i < selectedTableItems.length; i++) {
- selectedItems.add(selectedTableItems[i].getData()
- .toString());
- }
- }
- event.data = CSSSelectorTableViewer.CSS_SELECTOR_TABLE_VIWER_ID;
- }
-
- public void dragFinished(DragSourceEvent event) {
- if (event.detail == DND.DROP_MOVE) {
- TableItem[] selectedTableItems = table.getSelection();
- if (selectedTableItems != null && selectedTableItems.length > 0) {
- for (int i = 0; i < selectedTableItems.length; i++) {
- tableViewer.remove(selectedTableItems[i].getData());
- }
- }
- parent.updateStyles();
- }
- }
-
-}
Deleted:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTreeDragListener.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTreeDragListener.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTreeDragListener.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSTreeNode;
-import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorTreeViewer;
-import org.w3c.dom.css.CSSRule;
-
-/**
- *
- * @author yzhishko
- *
- */
-
-@SuppressWarnings("unused")
-public class CSSTreeDragListener implements DragSourceListener {
-
- private Table table;
- private Tree tree;
- private CSSSelectorPartComposite parent;
- private TreeViewer treeViewer;
- private TableViewer tableViewer;
-
- public CSSTreeDragListener (CSSSelectorPartComposite parent, TreeViewer treeViewer,
TableViewer tableViewer){
- this.table = tableViewer.getTable();
- this.tree = treeViewer.getTree();
- this.treeViewer = treeViewer;
- this.tableViewer = tableViewer;
- this.parent = parent;
- }
-
-
- public void dragStart(DragSourceEvent event) {
- event.doit = tree.getSelectionCount() > 0;
- }
-
- public void dragSetData(DragSourceEvent event) {
- List<String> selectedItems = new ArrayList<String>(0);
- TreeItem[] selectedTreeItems = tree.getSelection();
- if (selectedTreeItems != null) {
- for (int i = 0; i < selectedTreeItems.length; i++) {
- selectedItems.add(selectedTreeItems[i].getData()
- .toString());
- }
- }
-
- event.data = CSSSelectorTreeViewer.CSS_SELECTOR_TREE_VIWER_ID;
- }
-
- public void dragFinished(DragSourceEvent event) {
- if (event.detail == DND.DROP_MOVE) {
- List<String> selectedItems = new ArrayList<String>(0);
- TreeItem[] selectedTreeItems = tree.getSelection();
- if (selectedTreeItems != null) {
- for (int i = 0; i < selectedTreeItems.length; i++) {
- if (((CSSTreeNode) selectedTreeItems[i].getData())
- .getCssResource() instanceof CSSRule) {
- selectedItems.add(selectedTreeItems[i]
- .getData().toString());
- }
- }
- }
- for (int i = 0; i < selectedItems.size(); i++) {
- tableViewer.add(selectedItems.get(i));
- }
- parent.updateStyles();
- }
- }
-
-}
Copied:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTableDragListener.java
(from rev 20684,
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTableDragListener.java)
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTableDragListener.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTableDragListener.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.dnd;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DragSourceListener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Tree;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.CSSSelectorPartComposite;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorTableViewer;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("unused")
+public class CSSTableDragListener implements DragSourceListener {
+
+ private Table table;
+ private Tree tree;
+ private CSSSelectorPartComposite parent;
+ private TreeViewer treeViewer;
+ private TableViewer tableViewer;
+
+ public CSSTableDragListener (CSSSelectorPartComposite parent, TreeViewer treeViewer,
TableViewer tableViewer){
+ this.table = tableViewer.getTable();
+ this.tree = treeViewer.getTree();
+ this.treeViewer = treeViewer;
+ this.tableViewer = tableViewer;
+ this.parent = parent;
+ }
+
+ public void dragStart(DragSourceEvent event) {
+ event.doit = table.getSelectionCount() > 0;
+ }
+
+ public void dragSetData(DragSourceEvent event) {
+ List<String> selectedItems = new ArrayList<String>(0);
+ TableItem[] selectedTableItems = table.getSelection();
+ if (selectedTableItems != null) {
+ for (int i = 0; i < selectedTableItems.length; i++) {
+ selectedItems.add(selectedTableItems[i].getData()
+ .toString());
+ }
+ }
+ event.data = CSSSelectorTableViewer.CSS_SELECTOR_TABLE_VIWER_ID;
+ }
+
+ public void dragFinished(DragSourceEvent event) {
+ if (event.detail == DND.DROP_MOVE) {
+ TableItem[] selectedTableItems = table.getSelection();
+ if (selectedTableItems != null && selectedTableItems.length > 0) {
+ for (int i = 0; i < selectedTableItems.length; i++) {
+ tableViewer.remove(selectedTableItems[i].getData());
+ }
+ }
+ parent.updateStyles();
+ }
+ }
+
+}
Copied:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTreeDragListener.java
(from rev 20684,
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/CSSTreeDragListener.java)
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTreeDragListener.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/dnd/CSSTreeDragListener.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.dnd;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DragSourceListener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.CSSSelectorPartComposite;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSContainer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSRuleContainer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSTreeNode;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers.CSSSelectorTreeViewer;
+import org.w3c.dom.css.CSSRule;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("unused")
+public class CSSTreeDragListener implements DragSourceListener {
+
+ private Table table;
+ private Tree tree;
+ private CSSSelectorPartComposite parent;
+ private TreeViewer treeViewer;
+ private TableViewer tableViewer;
+
+ public CSSTreeDragListener(CSSSelectorPartComposite parent,
+ TreeViewer treeViewer, TableViewer tableViewer) {
+ this.table = tableViewer.getTable();
+ this.tree = treeViewer.getTree();
+ this.treeViewer = treeViewer;
+ this.tableViewer = tableViewer;
+ this.parent = parent;
+ }
+
+ public void dragStart(DragSourceEvent event) {
+ event.doit = tree.getSelectionCount() > 0;
+ }
+
+ public void dragSetData(DragSourceEvent event) {
+ List<String> selectedItems = new ArrayList<String>(0);
+ TreeItem[] selectedTreeItems = tree.getSelection();
+ if (selectedTreeItems != null) {
+ for (int i = 0; i < selectedTreeItems.length; i++) {
+ selectedItems.add(selectedTreeItems[i].getData().toString());
+ }
+ }
+
+ event.data = CSSSelectorTreeViewer.CSS_SELECTOR_TREE_VIWER_ID;
+ }
+
+ public void dragFinished(DragSourceEvent event) {
+ if (event.detail == DND.DROP_MOVE) {
+ List<String> selectedItems = new ArrayList<String>(0);
+ TreeItem[] selectedTreeItems = tree.getSelection();
+ if (selectedTreeItems != null) {
+ for (int i = 0; i < selectedTreeItems.length; i++) {
+ if (((CSSTreeNode) selectedTreeItems[i].getData())
+ .getCSSContainer() instanceof CSSRuleContainer) {
+ selectedItems.add(selectedTreeItems[i].getData()
+ .toString());
+ }
+ }
+ }
+ for (int i = 0; i < selectedItems.size(); i++) {
+ tableViewer.add(selectedItems.get(i));
+ }
+ parent.updateStyles();
+ }
+ }
+
+}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSContainer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSContainer.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSContainer.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+public abstract class CSSContainer {
+
+ private String styleSheetPath;
+
+ public CSSContainer(String styleSheetPath) {
+ this.setStyleSheetPath(styleSheetPath);
+ }
+
+ public void setStyleSheetPath(String styleSheetPath) {
+ this.styleSheetPath = styleSheetPath;
+ }
+
+ public String getStyleSheetPath() {
+ return styleSheetPath;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof CSSContainer)) {
+ return false;
+ }
+ return styleSheetPath.equals(((CSSContainer)obj).getStyleSheetPath());
+ }
+
+}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSRuleContainer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSRuleContainer.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSRuleContainer.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model;
+
+import org.w3c.dom.css.CSSRule;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+public class CSSRuleContainer extends CSSContainer {
+
+ private CSSRule rule;
+ private String selectorName;
+
+ public CSSRuleContainer(String selectorName, CSSRule rule,
+ String styleSheetPath) {
+ super(styleSheetPath);
+ setRule(rule);
+ setSelectorName(selectorName);
+ }
+
+ public void setRule(CSSRule rule) {
+ this.rule = rule;
+ }
+
+ public CSSRule getRule() {
+ return rule;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ boolean eq = super.equals(obj);
+ if (eq == false) {
+ return false;
+ }
+ if (!(obj instanceof CSSRuleContainer)) {
+ return false;
+ }
+ return eq
+ && selectorName.equals(((CSSRuleContainer) obj)
+ .getSelectorName())
+ && rule.equals(((CSSRuleContainer) obj).getRule());
+ }
+
+ public void setSelectorName(String selectorName) {
+ this.selectorName = selectorName;
+ }
+
+ public String getSelectorName() {
+ return selectorName;
+ }
+}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSSelectorTreeModel.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSSelectorTreeModel.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSSelectorTreeModel.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -11,6 +11,8 @@
package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model;
+import java.util.ArrayList;
+import java.util.List;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule;
import org.jboss.tools.jst.web.kb.PageContextFactory.CSSStyleSheetDescriptor;
import org.w3c.dom.css.CSSRule;
@@ -20,7 +22,7 @@
/**
*
* @author yzhishko
- *
+ *
*/
@SuppressWarnings("restriction")
@@ -29,29 +31,30 @@
private CSSStyleSheetDescriptor[] cssSheets;
private CSSTreeNode invisibleRoot;
- public CSSSelectorTreeModel(CSSStyleSheet[] cssSheets) {
- }
-
public CSSSelectorTreeModel(CSSStyleSheetDescriptor[] cssSheets) {
this.cssSheets = cssSheets;
setInvisibleRoot(new CSSTreeNode("")); //$NON-NLS-1$
initModel(this.cssSheets);
}
- private void initModel(CSSStyleSheetDescriptor[] cssStyleSheets){
+ private void initModel(CSSStyleSheetDescriptor[] cssStyleSheets) {
for (int i = 0; i < cssStyleSheets.length; i++) {
CSSStyleSheet styleSheet = cssStyleSheets[i].sheet;
CSSTreeNode parentSheet = new CSSTreeNode(cssStyleSheets[i].source);
parentSheet.setStyleSheetSource(parentSheet.toString());
invisibleRoot.addChild(parentSheet);
- parentSheet.setCssResource(styleSheet);
+ parentSheet.setCSSContainer(new CSSStyleSheetContainer(styleSheet,
+ cssStyleSheets[i].source));
CSSRuleList cssRuleList = styleSheet.getCssRules();
for (int j = 0; j < cssRuleList.getLength(); j++) {
CSSRule cssRule = cssRuleList.item(j);
- String[] selectors =
CSSSelectorUtils.parseSelectorName(((ICSSStyleRule)cssRule).getSelectorText());
+ String[] selectors = CSSSelectorUtils
+ .parseSelectorName(((ICSSStyleRule) cssRule)
+ .getSelectorText());
for (int k = 0; k < selectors.length; k++) {
CSSTreeNode ruleNode = new CSSTreeNode(selectors[k]);
- ruleNode.setCssResource(cssRule);
+ ruleNode.setCSSContainer(new CSSRuleContainer(selectors[k], cssRule,
+ cssStyleSheets[i].source));
ruleNode.setStyleSheetSource(cssStyleSheets[i].source);
parentSheet.addChild(ruleNode);
}
@@ -66,6 +69,29 @@
public CSSTreeNode getInvisibleRoot() {
return invisibleRoot;
}
-
-
+
+ public CSSTreeNode[] findCSSNodesByName(String name) {
+ List<CSSTreeNode> treeNodes = new ArrayList<CSSTreeNode>(0);
+ findCSSNodesRecursivly(invisibleRoot, name, treeNodes);
+ return treeNodes.toArray(new CSSTreeNode[0]);
+ }
+
+ private void findCSSNodesRecursivly(CSSTreeNode parentNode, String name,
+ List<CSSTreeNode> nodeCollection) {
+ if (parentNode == null) {
+ return;
+ }
+ List<CSSTreeNode> treeNodes = parentNode.getChildren();
+ if (treeNodes == null) {
+ return;
+ }
+ for (int i = 0; i < treeNodes.size(); i++) {
+ CSSTreeNode node = treeNodes.get(i);
+ if (name.equals(node.toString())) {
+ nodeCollection.add(node);
+ }
+ findCSSNodesRecursivly(node, name, nodeCollection);
+ }
+ }
+
}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSStyleSheetContainer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSStyleSheetContainer.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSStyleSheetContainer.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model;
+
+import org.w3c.dom.css.CSSStyleSheet;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+public class CSSStyleSheetContainer extends CSSContainer {
+
+ private CSSStyleSheet sheet;
+
+ public CSSStyleSheetContainer(CSSStyleSheet sheet, String styleSheetPath) {
+ super(styleSheetPath);
+ this.setSheet(sheet);
+ }
+
+ public void setSheet(CSSStyleSheet sheet) {
+ this.sheet = sheet;
+ }
+
+ public CSSStyleSheet getSheet() {
+ return sheet;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ boolean eq = super.equals(obj);
+ if (eq == false) {
+ return false;
+ }
+ if (!(obj instanceof CSSStyleSheetContainer)) {
+ return false;
+ }
+ return eq && sheet.equals(((CSSStyleSheetContainer) obj).getSheet());
+ }
+
+}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSTreeNode.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSTreeNode.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/model/CSSTreeNode.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -25,7 +25,7 @@
private String name;
private List<CSSTreeNode> children = new ArrayList<CSSTreeNode>(0);
private CSSTreeNode parent;
- private Object cssResource;
+ private CSSContainer cssResource;
private String styleSheetSource;
public CSSTreeNode(String n) {
@@ -54,11 +54,11 @@
return name;
}
- public void setCssResource(Object cssResource) {
+ public void setCSSContainer(CSSContainer cssResource) {
this.cssResource = cssResource;
}
- public Object getCssResource() {
+ public CSSContainer getCSSContainer() {
return cssResource;
}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSClassSelectionChangedEvent.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSClassSelectionChangedEvent.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSClassSelectionChangedEvent.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSRuleContainer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTreeModel;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSTreeNode;
+
+/**
+ * yzhishko
+ */
+
+@SuppressWarnings("serial")
+public abstract class CSSClassSelectionChangedEvent extends
+ SelectionChangedEvent {
+
+ protected CSSSelectorTreeModel model;
+
+ public CSSClassSelectionChangedEvent(ISelectionProvider source,
+ ISelection selection) {
+ super(source, selection);
+ }
+
+ public CSSRuleContainer[] getRuleContainersForName(String cssClassName) {
+ if (model == null) {
+ return null;
+ }
+ return findContainers(model.getInvisibleRoot(), cssClassName);
+ }
+
+ public abstract String[] getSelectedClassNames();
+
+ public CSSRuleContainer[] getSelectedRuleContainers() {
+ List<CSSRuleContainer> containers = new ArrayList<CSSRuleContainer>();
+ String[] classNames = getSelectedClassNames();
+ if (classNames != null) {
+ for (int i = 0; i < classNames.length; i++) {
+ CSSRuleContainer[] cssContainers = getRuleContainersForName(classNames[i]);
+ if (cssContainers != null) {
+ for (int j = 0; j < cssContainers.length; j++) {
+ containers.add(cssContainers[j]);
+ }
+ }
+ }
+ }
+ return containers.toArray(new CSSRuleContainer[0]);
+ }
+
+ private CSSRuleContainer[] findContainers(CSSTreeNode parentRoot,
+ String className) {
+ List<CSSRuleContainer> ruleContainers = new ArrayList<CSSRuleContainer>(
+ 0);
+ List<CSSTreeNode> styleSheetList = parentRoot.getChildren();
+ for (Iterator<CSSTreeNode> iterator = styleSheetList.iterator(); iterator
+ .hasNext();) {
+ CSSTreeNode styleSheetNode = (CSSTreeNode) iterator.next();
+ List<CSSTreeNode> styleClassList = styleSheetNode.getChildren();
+ for (Iterator<CSSTreeNode> iterator2 = styleClassList.iterator(); iterator2
+ .hasNext();) {
+ CSSTreeNode styleClassNode = (CSSTreeNode) iterator2.next();
+ if (className.equals(styleClassNode.toString())) {
+ ruleContainers.add((CSSRuleContainer) styleClassNode
+ .getCSSContainer());
+ }
+ }
+ }
+ return ruleContainers.toArray(new CSSRuleContainer[0]);
+ }
+
+ public CSSSelectorTreeModel getModel() {
+ return model;
+ }
+
+}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSSelectorEventManager.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSSelectorEventManager.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSSelectorEventManager.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection;
+
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTreeModel;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+public class CSSSelectorEventManager {
+
+ private static CSSSelectorEventManager instance = new CSSSelectorEventManager();
+
+ private CSSSelectorEventManager() {
+
+ }
+
+ public static CSSSelectorEventManager getInstance() {
+ return instance;
+ }
+
+ public CSSTreeSelectionChangedEvent createTreeSelectionChangedEvent(
+ SelectionChangedEvent event, CSSSelectorTreeModel model) {
+ return new CSSTreeSelectionChangedEvent(event.getSelectionProvider(),
+ event.getSelection(), model);
+ }
+
+ public CSSTableSelectionChangedEvent createTableSelectionChangedEvent(
+ SelectionChangedEvent event, CSSSelectorTreeModel model) {
+ return new CSSTableSelectionChangedEvent(event.getSelectionProvider(),
+ event.getSelection(), model);
+ }
+
+}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTableSelectionChangedEvent.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTableSelectionChangedEvent.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTableSelectionChangedEvent.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTreeModel;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("serial")
+public class CSSTableSelectionChangedEvent extends
+ CSSClassSelectionChangedEvent {
+
+ public CSSTableSelectionChangedEvent(ISelectionProvider source,
+ ISelection selection, CSSSelectorTreeModel model) {
+ super(source, selection);
+ this.model = model;
+ }
+
+ @Override
+ public String[] getSelectedClassNames() {
+ StructuredSelection structuredSelection = (StructuredSelection) selection;
+ Object[] selectedObjects = structuredSelection.toArray();
+ String[] selectedNames = new String[selectedObjects.length];
+ for (int i = 0; i < selectedObjects.length; i++) {
+ selectedNames[i] = selectedObjects[i].toString();
+ }
+ return selectedNames;
+ }
+
+}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTreeSelectionChangedEvent.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTreeSelectionChangedEvent.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/CSSTreeSelectionChangedEvent.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection;
+
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSContainer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSRuleContainer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTreeModel;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSStyleSheetContainer;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSTreeNode;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("serial")
+public class CSSTreeSelectionChangedEvent extends CSSClassSelectionChangedEvent {
+
+ public CSSTreeSelectionChangedEvent(ISelectionProvider source,
+ ISelection selection, CSSSelectorTreeModel model) {
+ super(source, selection);
+ this.model = model;
+ }
+
+ @Override
+ public String[] getSelectedClassNames() {
+ Set<String> selectedNames = new LinkedHashSet<String>(0);
+ TreeSelection treeSelection = (TreeSelection) selection;
+ Object[] selectedItems = treeSelection.toArray();
+ for (int i = 0; i < selectedItems.length; i++) {
+ CSSTreeNode treeNode = (CSSTreeNode) selectedItems[i];
+ CSSContainer container = treeNode.getCSSContainer();
+ if (container instanceof CSSStyleSheetContainer) {
+ List<CSSTreeNode> childNodes = treeNode.getChildren();
+ for (Iterator<CSSTreeNode> iterator = childNodes.iterator(); iterator
+ .hasNext();) {
+ CSSTreeNode cssTreeNode = (CSSTreeNode) iterator.next();
+ selectedNames.add(cssTreeNode.toString());
+ }
+ } else {
+ selectedNames.add(treeNode.toString());
+ }
+ }
+ return selectedNames.toArray(new String[0]);
+ }
+
+ @Override
+ public CSSRuleContainer[] getSelectedRuleContainers() {
+ Set<CSSRuleContainer> ruleContainers = new
LinkedHashSet<CSSRuleContainer>(
+ 0);
+ TreeSelection treeSelection = (TreeSelection) selection;
+ Object[] selectedItems = treeSelection.toArray();
+ for (int i = 0; i < selectedItems.length; i++) {
+ CSSTreeNode treeNode = (CSSTreeNode) selectedItems[i];
+ CSSContainer container = treeNode.getCSSContainer();
+ if (container instanceof CSSStyleSheetContainer) {
+ List<CSSTreeNode> childNodes = treeNode.getChildren();
+ for (Iterator<CSSTreeNode> iterator = childNodes.iterator(); iterator
+ .hasNext();) {
+ CSSTreeNode cssTreeNode = (CSSTreeNode) iterator.next();
+ ruleContainers.add((CSSRuleContainer) cssTreeNode
+ .getCSSContainer());
+ }
+ } else {
+ ruleContainers.add((CSSRuleContainer) treeNode
+ .getCSSContainer());
+ }
+ }
+ return ruleContainers.toArray(new CSSRuleContainer[0]);
+ }
+
+}
Added:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/ICSSClassSelectionChangedListener.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/ICSSClassSelectionChangedListener.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/selection/ICSSClassSelectionChangedListener.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.selection;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+public interface ICSSClassSelectionChangedListener {
+
+ void classSelectionChanged(CSSClassSelectionChangedEvent event);
+
+}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTableViewer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTableViewer.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTableViewer.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -11,11 +11,15 @@
package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TableItem;
import org.jboss.tools.jst.jsp.JspEditorPlugin;
import org.jboss.tools.jst.jsp.outline.cssdialog.common.Constants;
import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSSelectorTableModel;
@@ -30,6 +34,8 @@
public final static String CSS_SELECTOR_TABLE_VIWER_ID =
"css_selector_table_viwer"; //$NON-NLS-1$
private final static ImageDescriptor CSS_STYLE_CLASS_DESCR =
JspEditorPlugin.getImageDescriptor(Constants.IMAGE_STYLE_CLASS_LOCATION);
+
+ private CSSSelectorTableModel model;
public CSSSelectorTableViewer(Composite parent, int style) {
super(parent, style);
@@ -44,6 +50,46 @@
public void setModel(CSSSelectorTableModel model){
setInput(model.getContainerList());
+ this.model = model;
}
+ public CSSSelectorTableModel getModel(){
+ return model;
+ }
+
+ @Override
+ public void add(Object element) {
+ if (element != null) {
+ if (isContain(element)) {
+ return;
+ }
+ }
+ super.add(element);
+ }
+
+ @Override
+ public void add(Object[] elements) {
+ List<Object> objects = new ArrayList<Object>(0);
+ if (elements != null) {
+ for (int i = 0; i < elements.length; i++) {
+ if (!isContain(elements[i])) {
+ objects.add(elements[i]);
+ }
+ }
+ }
+ super.add(objects.toArray());
+ }
+
+ private boolean isContain(Object element){
+ TableItem[] items = getTable().getItems();
+ if (items != null) {
+ for (int i = 0; i < items.length; i++) {
+ if (element.equals(items[i].getData())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
}
Deleted:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTransfer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTransfer.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTransfer.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -1,94 +0,0 @@
-package org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.viewers;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-import org.eclipse.swt.dnd.TransferData;
-
-public class CSSSelectorTransfer extends ByteArrayTransfer {
-
- private static CSSSelectorTransfer instance = new CSSSelectorTransfer();
- private static final String TYPE_NAME = "selector-transfer-format";
//$NON-NLS-1$
- private static final int TYPEID = registerType(TYPE_NAME);
-
- private CSSSelectorTransfer() {
-
- }
-
- public static CSSSelectorTransfer getInstance(){
- return instance;
- }
-
- @Override
- protected int[] getTypeIds() {
- return new int[] { TYPEID };
- }
-
- @Override
- protected String[] getTypeNames() {
- return new String[] { TYPE_NAME };
- }
-
- @Override
- protected Object nativeToJava(TransferData transferData) {
- byte[] bytes = (byte[]) super.nativeToJava(transferData);
- return fromByteArray(bytes);
- }
-
- @Override
- protected void javaToNative(Object object, TransferData transferData) {
- byte[] bytes = toByteArray((String[]) object);
- if (bytes != null)
- super.javaToNative(bytes, transferData);
- }
-
- protected byte[] toByteArray(String[] strings) {
-
- ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
- DataOutputStream out = new DataOutputStream(byteOut);
-
- byte[] bytes = null;
-
- try {
- /* write number of markers */
- out.writeInt(strings.length);
-
- /* write markers */
- for (int i = 0; i < strings.length; i++) {
- out.writeUTF(strings[i]);
- }
- out.close();
- bytes = byteOut.toByteArray();
- } catch (IOException e) {
- // when in doubt send nothing
- }
- return bytes;
- }
-
- protected String[] fromByteArray(byte[] bytes) {
- DataInputStream in = new DataInputStream(
- new ByteArrayInputStream(bytes));
-
- try {
- /* read number of gadgets */
- int n = in.readInt();
- /* read gadgets */
- String[] strings = new String[n];
- for (int i = 0; i < n; i++) {
- String string = in.readUTF();
- if (string == null) {
- return null;
- }
- strings[i] = string;
- }
- return strings;
- } catch (IOException e) {
- return null;
- }
- }
-
-}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeLabelProvider.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeLabelProvider.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeLabelProvider.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -16,9 +16,9 @@
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.jst.jsp.JspEditorPlugin;
import org.jboss.tools.jst.jsp.outline.cssdialog.common.Constants;
+import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSRuleContainer;
+import
org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSStyleSheetContainer;
import org.jboss.tools.jst.jsp.outline.cssdialog.cssselector.model.CSSTreeNode;
-import org.w3c.dom.css.CSSRule;
-import org.w3c.dom.css.CSSStyleSheet;
/**
*
@@ -33,10 +33,10 @@
@Override
public Image getImage(Object element) {
- if (((CSSTreeNode) element).getCssResource() instanceof CSSStyleSheet) {
+ if (((CSSTreeNode) element).getCSSContainer() instanceof CSSStyleSheetContainer) {
return CSS_STYLE_SHEET_DESCR.createImage();
}
- if (((CSSTreeNode) element).getCssResource() instanceof CSSRule) {
+ if (((CSSTreeNode) element).getCSSContainer() instanceof CSSRuleContainer) {
return CSS_STYLE_CLASS_DESCR.createImage();
}
return super.getImage(element);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeViewer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeViewer.java 2010-03-10
13:06:00 UTC (rev 20730)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/cssdialog/cssselector/viewers/CSSSelectorTreeViewer.java 2010-03-10
13:09:11 UTC (rev 20731)
@@ -24,6 +24,7 @@
public class CSSSelectorTreeViewer extends TreeViewer {
public final static String CSS_SELECTOR_TREE_VIWER_ID =
"css_selector_tree_viwer"; //$NON-NLS-1$
+ private CSSSelectorTreeModel model;
public CSSSelectorTreeViewer(Composite parent, int style) {
super(parent, style);
@@ -34,7 +35,12 @@
public void setModel(CSSSelectorTreeModel model){
if (model != null) {
setInput(model.getInvisibleRoot());
+ this.model = model;
}
}
+
+ public CSSSelectorTreeModel getModel(){
+ return model;
+ }
}