call("modifyStyle", new Jsonizable[] { new JsString(result) });
}
+
+ public void modifyStyle(String style) {
+ call("modifyStyle", new Jsonizable[] { new JsString(style) });
+ }
}
--- /dev/null
+/*
+ * UI Builder
+ *
+ * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.webuibuilder.gef.commands;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.gef.commands.Command;
+import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.css.CssFile;
+import org.tizen.webuibuilder.model.css.CssSelector;
+import org.tizen.webuibuilder.model.css.CssStyle;
+import org.tizen.webuibuilder.model.page.PageData;
+
+abstract public class ChangeCssSelectorCommand extends Command {
+
+ private Part model;
+ private String selectorName;
+ private PageData pageData;
+ private CssFile appliedCssFile;
+ private CssSelector newSelector = null;
+
+ public ChangeCssSelectorCommand(Object model, PageData pageData, String selectorName) {
+ setModel(model);
+ this.pageData = pageData;
+ this.selectorName = selectorName;
+ }
+
+ public void setModel(Object model) {
+ this.model = (Part) model;
+ }
+
+ abstract public void execute2();
+ abstract public void undo2();
+
+ /**
+ * Do not override this method. You must override execute2().
+ */
+ @Override
+ public void execute() {
+ // prepare selector
+ Map<String, CssSelector> selectorMap = model.getEditSelectorMap();
+ CssSelector selector = selectorMap.get(selectorName);
+ if (selector == null) {
+ // create selector
+ selector = new CssSelector(selectorName);
+ selectorMap.put(selectorName, selector);
+ appliedCssFile = pageData.getCurrentCssFile();
+ appliedCssFile.addCssSelector(selector);
+ newSelector = selector;
+
+ }
+
+
+
+ // Setting all selector of Part
+// List<CssFile> appliedCssFileList = pageData.getAppliedCssFiles();
+// int index = appliedCssFileList.indexOf(appliedCssFile);
+// int size = appliedCssFileList.size();
+// Map<String, CssSelector> allMap = model.getAllSelectorMap();
+// boolean skip = false;
+// CssSelector cloneSelector = selector.cloneCssSelector(selectorName);
+// if (size - 1 == index) {
+// allMap.put(selectorName, cloneSelector);
+// } else {
+// for (int i = index + 1; i <= size - 1; i++) {
+// CssSelector targetSelector = allMap.get(selectorName);
+// if (targetSelector != null) {
+// for (CssStyle style : selector.getStyles()) {
+// targetSelector.getStyleMap().put(style.getKey(), style);
+// }
+// skip = true;
+// break;
+// }
+// }
+// if (!skip) {
+// allMap.put(selectorName, cloneSelector);
+// }
+// }
+
+ execute2();
+ }
+
+ /**
+ * Do not override this method. You must override undo2().
+ */
+ @Override
+ public void undo() {
+ undo2();
+ if (newSelector != null) {
+ model.getEditSelectorMap().remove(newSelector);
+ model.getAllSelectorMap().remove(newSelector);
+ appliedCssFile.removeCssSelector(newSelector);
+ }
+ }
+
+ public Part getModel() {
+ return model;
+ }
+
+ public String getSelectorName() {
+ return selectorName;
+ }
+}
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.css.CssFile;
import org.tizen.webuibuilder.model.css.CssSelector;
+import org.tizen.webuibuilder.model.page.PageData;
-public class CreateCssSelectorCommand extends Command {
+public class CreateCssSelectorCommand extends ChangeCssSelectorCommand {
- private CssFile cssFile;
- private CssSelector selector;
- private Part part;
- private String selectorName;
-
- public CreateCssSelectorCommand(CssFile cssFile, Part part, CssSelector selector) {
- this.cssFile = cssFile;
- this.part = part;
- this.selector = selector;
- }
-
- public CreateCssSelectorCommand(CssFile cssFile, Part part, String selectorName) {
- this.cssFile = cssFile;
- this.part = part;
- this.selectorName = selectorName;
+ public CreateCssSelectorCommand(PageData pageData, Part model, String selectorName) {
+ super(model, pageData, selectorName);
}
@Override
public boolean canExecute() {
- if (cssFile == null || part == null || selectorName == null || selectorName.isEmpty()) {
- return false;
- } else if (cssFile.getSelector(selectorName) != null) {
- return false;
- } else {
+ Part model = getModel();
+ if (getSelectorName() != null && !getSelectorName().isEmpty() && model != null) {
return true;
+ } else {
+ return false;
}
}
- @Override
- public void execute() {
- if (selector == null) {
- selector = new CssSelector(selectorName);
- }
+// @Override
+// public void execute() {
+// if (selector == null) {
+// selector = new CssSelector(selectorName);
+// }
+//
+// cssFile.addCssSelector(selector);
+// part.addSelector(selector.getSelectorName(), selector);
+// }
+//
+// @Override
+// public void undo() {
+// cssFile.removeCssSelector(selector);
+// part.removeSelector(selector.getSelectorName());
+// }
- cssFile.addCssSelector(selector);
- part.addSelector(selector.getSelectorName(), selector);
+ @Override
+ public void execute2() {
+ String selectorName = getSelectorName();
+ CssSelector selector = new CssSelector(selectorName);
+ Part model = getModel();
+ model.addSelector(selectorName, selector);
}
@Override
- public void undo() {
- cssFile.removeCssSelector(selector);
- part.removeSelector(selector.getSelectorName());
+ public void undo2() {
+ // TODO Auto-generated method stub
+ String selectorName = getSelectorName();
+ Part model = getModel();
+ model.removeSelector(selectorName);
}
}
package org.tizen.webuibuilder.gef.commands;
+import java.util.List;
+import java.util.Map;
+
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.commands.Command;
import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.css.CssFile;
+import org.tizen.webuibuilder.model.css.CssSelector;
+import org.tizen.webuibuilder.model.page.PageData;
-public class DesignerMoveLayoutCommand extends Command {
-
- private Part model;
+public class DesignerMoveLayoutCommand extends ChangeCssSelectorCommand {
private Point delta;
private Point oldPosition;
+
- public DesignerMoveLayoutCommand(Object model, Point delta) {
- setModel(model);
+ public DesignerMoveLayoutCommand(Object model, Point delta, PageData pageData, String selectorName) {
+ super(model, pageData, selectorName);
setDelta(delta);
}
this.delta = delta;
}
- public void setModel(Object model) {
- this.model = (Part) model;
- }
+// public void setModel(Object model) {
+// this.model = (Part) model;
+// }
+
+// @Override
+// public void execute() {
+// Map<String, CssSelector> selectorMap = model.getEditSelectorMap();
+// // create new selector
+// CssSelector selector = selectorMap.get(selectorName);
+// if (selector == null) {
+// selector = new CssSelector(selectorName);
+// selectorMap.put(selectorName, selector);
+// pageData.getCurrentCssFile().addCssSelector(selector);
+// newSelector = selector;
+// }
+//
+// Rectangle pos = model.getPositionProperty();
+// oldPosition = new Point(pos.x, pos.y);
+// model.setPosition(new Point(oldPosition.x + delta.x, oldPosition.y + delta.y));
+//
+// List<CssFile> appliedCssFileList = pageData.getAppliedCssFiles();
+// int index = appliedCssFileList.indexOf(pageData.getCurrentCssFile());
+// int size = appliedCssFileList.size();
+// Map<String, CssSelector> allMap = model.getAllSelectorMap();
+// boolean skip = false;
+// if (size - 1 == index) {
+// allMap.put(selectorName, selector);
+// } else {
+// for (int i = index + 1; i <= size - 1; i++) {
+// if (allMap.get(selectorName) != null) {
+// skip = true;
+// break;
+// }
+// }
+// if (!skip) {
+// allMap.put(selectorName, selector);
+// }
+// }
+// }
+//
+// @Override
+// public void undo() {
+// if (oldPosition != null) {
+// model.setPosition(new Point(oldPosition.x, oldPosition.y));
+// if (newSelector != null) {
+// model.getEditSelectorMap().remove(newSelector);
+// model.getAllSelectorMap().remove(newSelector);
+// appliedCssFile.removeCssSelector(newSelector);
+// }
+// }
+// }
@Override
- public void execute() {
+ public void execute2() {
+ Part model = getModel();
Rectangle pos = model.getPositionProperty();
oldPosition = new Point(pos.x, pos.y);
model.setPosition(new Point(oldPosition.x + delta.x, oldPosition.y + delta.y));
}
@Override
- public void undo() {
+ public void undo2() {
+ Part model = getModel();
if (oldPosition != null) {
model.setPosition(new Point(oldPosition.x, oldPosition.y));
}
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.commands.Command;
import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.page.PageData;
-public class DesignerResizeAndMoveLayoutCommand extends Command {
+public class DesignerResizeAndMoveLayoutCommand extends ChangeCssSelectorCommand {
- private Part model;
private Rectangle delta;
private Rectangle oldLayout;
- public DesignerResizeAndMoveLayoutCommand(Object model, Rectangle delta) {
- this.model = (Part)model;
+ public DesignerResizeAndMoveLayoutCommand(Object model, Rectangle delta, PageData pageData, String selectorName) {
+ super(model, pageData, selectorName);
this.delta = delta;
}
+// @Override
+// public void execute() {
+// Map<String, CssSelector> selectorMap = model.getEditSelectorMap();
+// // create new selector
+// if (selectorMap.get(selectorName) == null) {
+// CssSelector selector = new CssSelector(selectorName);
+// selectorMap.put(selectorName, selector);
+// }
+// if (model.getPositionMode() == Part.PositionMode.ABSOLUTE_POSITION) {
+// oldLayout = new Rectangle(model.getPositionProperty());
+// if (delta.x != 0 || delta.y != 0) {
+// model.setPosition(new Point(oldLayout.x + delta.x, oldLayout.y + delta.y));
+// }
+// if (delta.width != 0 || delta.height != 0) {
+// model.setSize(new Point(oldLayout.width + delta.width, oldLayout.height + delta.height));
+// }
+// } else if (model.getPositionMode() == Part.PositionMode.RELATIVE_POSITION) {
+// oldLayout = new Rectangle(model.getPositionProperty());
+// if (delta.x != 0 || delta.y != 0) {
+// model.setPosition(new Point(oldLayout.x + delta.x, oldLayout.y + delta.y));
+// }
+// if (delta.width != 0 || delta.height != 0) {
+// model.setSize(new Point(oldLayout.width + delta.width, oldLayout.height + delta.height));
+// }
+// }
+// }
+//
+// @Override
+// public void undo() {
+// if (oldLayout != null) {
+// model.setPosition(oldLayout);
+// }
+// }
+
@Override
- public void execute() {
+ public void execute2() {
+ Part model = getModel();
if (model.getPositionMode() == Part.PositionMode.ABSOLUTE_POSITION) {
oldLayout = new Rectangle(model.getPositionProperty());
if (delta.x != 0 || delta.y != 0) {
}
@Override
- public void undo() {
+ public void undo2() {
+ Part model = getModel();
if (oldLayout != null) {
model.setPosition(oldLayout);
}
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.commands.Command;
import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.page.PageData;
-public class DesignerResizeLayoutCommand extends Command {
+public class DesignerResizeLayoutCommand extends ChangeCssSelectorCommand {
- private Part model;
private Dimension delta;
private Dimension oldSize;
- public DesignerResizeLayoutCommand(Object model, Dimension delta) {
- setModel(model);
+ public DesignerResizeLayoutCommand(Object model, Dimension delta, PageData pageData, String selectorName) {
+ super(model, pageData, selectorName);
setDelta(delta);
}
this.delta = delta;
}
- public void setModel(Object model) {
- this.model = (Part) model;
- }
+// public void setModel(Object model) {
+// this.model = (Part) model;
+// }
+//
+// @Override
+// public void execute() {
+// Map<String, CssSelector> selectorMap = model.getEditSelectorMap();
+// // create new selector
+// if (selectorMap.get(selectorName) == null) {
+// CssSelector selector = new CssSelector(selectorName);
+// selectorMap.put(selectorName, selector);
+// }
+//
+// oldSize = new Dimension(model.getPositionProperty().width, model.getPositionProperty().height);
+// model.setSize(new Point(oldSize.width + delta.width, oldSize.height + delta.height));
+// }
+//
+// @Override
+// public void undo() {
+// if (oldSize != null) {
+// model.setSize(new Point(oldSize.width, oldSize.height));
+// }
+// }
@Override
- public void execute() {
+ public void execute2() {
+ Part model = getModel();
oldSize = new Dimension(model.getPositionProperty().width, model.getPositionProperty().height);
- model.setSize(new Point(oldSize.width + delta.width, oldSize.height + delta.height));
+ model.setSize(new Point(oldSize.width + delta.width, oldSize.height + delta.height));
}
@Override
- public void undo() {
+ public void undo2() {
+ Part model = getModel();
if (oldSize != null) {
model.setSize(new Point(oldSize.width, oldSize.height));
}
package org.tizen.webuibuilder.gef.commands;
-import org.eclipse.gef.commands.Command;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.css.CssFile;
import org.tizen.webuibuilder.model.css.CssSelector;
+import org.tizen.webuibuilder.model.page.PageData;
/**
* The command to set css style.
*/
-public class SetCssStyleCommand extends Command {
-
- /**
- * A {@link CssFile}.
- */
- private CssFile cssFile;
-
- /**
- * A {@link Part}.
- */
- private Part part;
-
- /**
- * A {@link CssSelector}.
- */
- private CssSelector selector;
+public class SetCssStyleCommand extends ChangeCssSelectorCommand {
/**
* A css style name.
* @param value
* css style value
*/
- public SetCssStyleCommand(CssFile cssFile, Part part, CssSelector selector, String key,
+ public SetCssStyleCommand(PageData pageData, Part part, String selectorName, String key,
String value) {
- this.cssFile = cssFile;
- this.part = part;
- this.selector = selector;
+ super(part, pageData, selectorName);
this.key = key;
this.value = value;
}
/**
* Checks whether a {@link SetCssStyleCommand} can be executed.
*
- * @return <code>true</code> if a {@link SetCssStyleCommand} can be executed, and
- * <code>false</code> otherwise
+ * @return <code>true</code> if a {@link SetCssStyleCommand} can be
+ * executed, and <code>false</code> otherwise
*/
- @Override
- public boolean canExecute() {
- if (cssFile == null || part == null || selector == null) {
- return false;
- } else {
- if (part.getIdPropertyValue().equals(selector.getPartId())) {
- return true;
- } else {
- return false;
- }
- }
- }
+ // @Override
+ // public boolean canExecute() {
+ // if (cssFile == null || part == null || selector == null) {
+ // return false;
+ // } else {
+ // if (part.getIdPropertyValue().equals(selector.getPartId())) {
+ // return true;
+ // } else {
+ // return false;
+ // }
+ // }
+ // }
+ //
+ // /**
+ // * Executes a {@link SetCssStyleCommand}.
+ // */
+ // @Override
+ // public void execute() {
+ // if (canExecute()) {
+ // if (oldValue == null) {
+ // oldValue = selector.getPropertyValue(key);
+ // }
+ //
+ // if (cssFile.getSelector(selector.getSelectorName()) == null) {
+ // cssFile.addCssSelector(selector);
+ // }
+ // selector.setStyle(key, value);
+ // String selectorName = selector.getSelectorName();
+ //
+ // if (part.getSelector(selectorName) == null) {
+ // part.addSelector(selectorName, selector);
+ // }
+ // part.setSelectorPropertyValue(selectorName, key, value);
+ // }
+ // }
+ //
+ // /**
+ // * Undoes a {@link SetCssStyleCommand}.
+ // */
+ // @Override
+ // public void undo() {
+ // selector.setStyle(key, oldValue);
+ // part.setSelectorPropertyValue(selector.getSelectorName(), key, oldValue);
+ // }
- /**
- * Executes a {@link SetCssStyleCommand}.
- */
@Override
- public void execute() {
- if (canExecute()) {
- if (oldValue == null) {
- oldValue = selector.getPropertyValue(key);
- }
-
- if (cssFile.getSelector(selector.getSelectorName()) == null) {
- cssFile.addCssSelector(selector);
- }
- selector.setStyle(key, value);
- String selectorName = selector.getSelectorName();
-
- if (part.getSelector(selectorName) == null) {
- part.addSelector(selectorName, selector);
- }
- part.setSelectorPropertyValue(selectorName, key, value);
- }
+ public void execute2() {
+ Part part = getModel();
+ part.setSelectorPropertyValue(getSelectorName(), key, value);
}
- /**
- * Undoes a {@link SetCssStyleCommand}.
- */
@Override
- public void undo() {
- selector.setStyle(key, oldValue);
- part.setSelectorPropertyValue(selector.getSelectorName(), key, oldValue);
+ public void undo2() {
+ Part part = getModel();
+ part.setSelectorPropertyValue(getSelectorName(), key, oldValue);
}
}
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import org.eclipse.draw2d.FreeformLayer;
import org.eclipse.draw2d.IClippingStrategy;
import org.tizen.webuibuilder.gef.figure.PageFigure;
import org.tizen.webuibuilder.gef.figure.PartFigure;
import org.tizen.webuibuilder.gef.figure.WidgetFigure;
+import org.tizen.webuibuilder.gef.policies.DesignerAbsoluteDragEditPolicy;
+import org.tizen.webuibuilder.gef.policies.DesignerDragEditPolicy;
import org.tizen.webuibuilder.gef.policies.HoverViewerXYLayoutEditPolicy;
import org.tizen.webuibuilder.gef.tools.HoverViewerDragEditPartsTracker;
import org.tizen.webuibuilder.gef.viewer.HoverBrowserViewer;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.PartEvent;
import org.tizen.webuibuilder.model.css.CssEvent;
+import org.tizen.webuibuilder.model.css.CssFile;
+import org.tizen.webuibuilder.model.css.CssSelector;
+import org.tizen.webuibuilder.model.css.CssStyle;
import org.tizen.webuibuilder.model.css.ICssListener;
+import org.tizen.webuibuilder.model.page.PageData;
import org.tizen.webuibuilder.ui.editor.ruler.DesignerGuide;
@Override
public void needRefresh(CssEvent event) {
// called needRefresh(e) in HoverVrowserViewer()
+ String selectorName = event.getSelectorName();
+ if (selectorName == null) {
+ ((HoverBrowserViewer) getViewer()).updateStyle();
+ }
+ PageData pageData = ((HoverBrowserViewer)getViewer()).getPageData();
+ Part model = (Part)getModel();
+ CssSelector selector = model.getSelector(selectorName);
+ List<CssFile> appliedCssFileList = pageData.getAppliedCssFiles();
+ int index = appliedCssFileList.indexOf(pageData.getCurrentCssFile());
+ int size = appliedCssFileList.size();
+ Map<String, CssSelector> allMap = model.getAllSelectorMap();
+ CssSelector cloneSelector = selector.cloneCssSelector(selectorName);
+
+// if (size - 1 == index) {
+//
+// allMap.put(selectorName, cloneSelector);
+//
+// } else {
+ for (int i = index + 1; i < size; i++) {
+ CssFile cssFile = appliedCssFileList.get(i);
+ CssSelector skipSelector = cssFile.getSelector(selectorName);
+ if (skipSelector == null) {
+ continue;
+ }
+ Map<String, CssStyle> skipStyleMap = skipSelector.getStyleMap();
+ for (CssStyle style : cloneSelector.getStyles()) {
+ if (skipStyleMap.get(style.getKey()) != null) {
+ cloneSelector.getStyleMap().remove(style.getKey());
+// allMap.get(selectorName).setStyle(style);
+// allMap.put(style.getKey(), style);
+ }
+ }
+
+
+
+// CssSelector targetSelector = allMap.get(selectorName);
+// if (targetSelector != null) {
+// for (CssStyle style : selector.getStyles()) {
+// targetSelector.getStyleMap().put(style.getKey(), style);
+// }
+// skip = true;
+// break;
+// }
+ }
+ for (CssStyle style : cloneSelector.getStyles()) {
+ allMap.get(selectorName).setStyle(style);
+ }
+// for (int i = 0; i <= index; i++) {
+// allMap.
+// }
+// if (!skip) {
+// allMap.put(selectorName, cloneSelector);
+// }
+// }
((HoverBrowserViewer) getViewer()).updateStyle();
+
+ if (event.getPropertyKey() == null) {
+ return;
+ }
+ if (event.getPropertyKey().equals("position")) {
+ if (((Part) getModel()).getPositionMode() == Part.PositionMode.ABSOLUTE_POSITION) {
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new DesignerAbsoluteDragEditPolicy());
+ }
+ if (((Part) getModel()).getPositionMode() == Part.PositionMode.RELATIVE_POSITION) {
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new DesignerDragEditPolicy());
+ }
+ refreshVisuals();
+ }
}
@SuppressWarnings("rawtypes")
import org.eclipse.gef.requests.AlignmentRequest;
import org.eclipse.gef.requests.ChangeBoundsRequest;
import org.eclipse.swt.graphics.Color;
-import org.tizen.webuibuilder.gef.commands.DesignerChangeLayoutCommand;
import org.tizen.webuibuilder.gef.commands.DesignerMoveLayoutCommand;
import org.tizen.webuibuilder.gef.commands.DesignerResizeAndMoveLayoutCommand;
import org.tizen.webuibuilder.gef.commands.DesignerResizeLayoutCommand;
import org.tizen.webuibuilder.gef.editparts.DesignerRootEditPart;
import org.tizen.webuibuilder.gef.editparts.HoverViewerEditPart;
import org.tizen.webuibuilder.gef.figure.SelectionBorder;
+import org.tizen.webuibuilder.gef.viewer.HoverBrowserViewer;
import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.page.PageData;
public class DesignerAbsoluteDragEditPolicy extends ResizableEditPolicy {
@Override
public Command getCommand(Request request) {
+ HoverBrowserViewer viewer = (HoverBrowserViewer) getHost().getViewer();
+ PageData pageData = viewer.getPageData();
+ Part part = (Part) getHost().getModel();
+ String selectorName = part.getDefaultSelectorName();
+
if (REQ_RESIZE.equals(request.getType())) {
Dimension sizeDelta = ((ChangeBoundsRequest) request).getSizeDelta();
sizeDelta.width /=
if((direct & PositionConstants.NORTH) != 0){
layoutDelta.y -= sizeDelta.height;
}
+
+
if(layoutDelta.x != 0 || layoutDelta.y != 0){
layoutDelta.width = sizeDelta.width;
layoutDelta.height = sizeDelta.height;
- return new DesignerResizeAndMoveLayoutCommand(getHost().getModel(), layoutDelta);
+ return new DesignerResizeAndMoveLayoutCommand(part, layoutDelta, pageData, selectorName);
} else {
- return new DesignerResizeLayoutCommand(getHost().getModel(), sizeDelta);
+ return new DesignerResizeLayoutCommand(part, sizeDelta, pageData, selectorName);
}
// return new DesignerChangeLayoutCommand(getHost().getModel(),
// ((ChangeBoundsRequest) request)
// .getTransformedRectangle(rect));
}
if (REQ_MOVE.equals(request.getType())) {
+
+
Point moveDelta = ((ChangeBoundsRequest) request).getMoveDelta();
moveDelta.x /= ((DesignerRootEditPart) getHost().getRoot()).getZoomManager().getZoom();
moveDelta.y /= ((DesignerRootEditPart) getHost().getRoot()).getZoomManager().getZoom();
// return new DesignerChangeLayoutCommand(getHost().getModel(),
// ((ChangeBoundsRequest) request)
// .getTransformedRectangle(rect), 0);
- return new DesignerMoveLayoutCommand(getHost().getModel(), moveDelta);
+// CssFile cssFile = viewer.getPageData().getCurrentCssFile();
+
+ return new DesignerMoveLayoutCommand(part, moveDelta, pageData, selectorName);
}
if (REQ_ALIGN.equals(request.getType())) {
return getAlignCommand((AlignmentRequest) request);
import org.tizen.webuibuilder.gef.editparts.DesignerRootEditPart;
import org.tizen.webuibuilder.gef.editparts.HoverViewerEditPart;
import org.tizen.webuibuilder.gef.figure.SelectionBorder;
+import org.tizen.webuibuilder.gef.viewer.HoverBrowserViewer;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.PartProperty;
import org.tizen.webuibuilder.model.descriptors.ConstantDescriptor;
+import org.tizen.webuibuilder.model.page.PageData;
import org.tizen.webuibuilder.request.MoveRequest;
// return new DesignerChangeLayoutCommand(getHost().getModel(),
// ((ChangeBoundsRequest) request)
// .getTransformedRectangle(rect));
- return new DesignerResizeLayoutCommand(getHost().getModel(), sizeDelta);
+
+ HoverBrowserViewer viewer = (HoverBrowserViewer) getHost().getViewer();
+ PageData pageData = viewer.getPageData();
+ Part part = (Part) getHost().getModel();
+ String selectorName = part.getDefaultSelectorName();
+ return new DesignerResizeLayoutCommand(getHost().getModel(), sizeDelta, pageData, selectorName);
}
if (REQ_MOVE.equals(request.getType())) {
if (request instanceof MoveRequest) {
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.ToolTip;
import org.eclipse.ui.IEditorInput;
+import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.bridge.DesignerGoingBridge;
import org.tizen.webuibuilder.bridge.DesignerGoingBridge.WidgetPosition;
import org.tizen.webuibuilder.browserwidget.ImageBufferedBrowserWidget.ContentsAreaChangedListener;
private void setCssStyle(String cssStyle) {
// Logger.trace("setCssStyle : " + cssStyle.substring(0, 40));
+ goingBridge.modifyStyle(BuilderConstants.EMPTY);
goingBridge.setCssStyle(cssStyle);
}
/**
* A Map containing css selector.
*/
- private Map<String, CssSelector> selectors = new HashMap<String, CssSelector>();
+ private Map<String, CssSelector> allSelectorMap = new HashMap<String, CssSelector>();
+
+ private Map<String, CssSelector> editSelectorMap = new HashMap<String, CssSelector>();
private AbsolutePositionProvider absolutePositionProvider = null;
private Map<String, GotoPageProperty> gotoPageProperties =
lockRefresh();
//Point newPosition = ScreenToPage(new Point(position.x, position.y));
Point newPosition = new Point(position.x, position.y);
- Part page = getOwnerPage();
- String selectorName = EMPTY;
- if (page == null) {
- selectorName = SHARP + getIdPropertyValue();
- } else {
- selectorName =
- SHARP + page.getIdPropertyValue() + SPACE + SHARP + getIdPropertyValue();
- }
+ String selectorName = getDefaultSelectorName();
// String parentName = TypeDescriptor.ID_OF_GROUP_POSITION;
setSelectorPropertyValue(selectorName, LEFT, String.valueOf(newPosition.x) + PX, null);
return;
}
- selectors.put(selectorName, cssSelector);
+ editSelectorMap.put(selectorName, cssSelector);
fireEvent(new CssEvent(EventType.CSS_SELECTOR_ADDED, this, cssSelector.getSelectorName(),
null, null));
if (cssSelector == null) {
return;
}
+
+ String selectorName = cssSelector.getSelectorName();
+
+ CssSelector prevSelector = allSelectorMap.get(selectorName);
+ if (prevSelector == null) {
+ CssSelector cloneSelector = cssSelector.cloneCssSelector(selectorName);
+ allSelectorMap.put(selectorName, cloneSelector);
+ } else {
+ for (CssStyle style : cssSelector.getStyles()) {
+ prevSelector.getStyleMap().put(style.getKey(), style);
+ }
+ }
+ }
+
+ public void addEditSelectorWhenReadCss(CssSelector cssSelector) {
+ if (cssSelector == null) {
+ return;
+ }
- selectors.put(cssSelector.getSelectorName(), cssSelector);
+ editSelectorMap.put(cssSelector.getSelectorName(), cssSelector);
}
/**
* @return Collection containing css selector
*/
public Collection<CssSelector> getSelectors() {
- return selectors.values();
+ return allSelectorMap.values();
+ }
+
+ public Map<String, CssSelector> getAllSelectorMap() {
+ return allSelectorMap;
}
/**
* @return List containing css selector name
*/
public List<String> getSelectorNameList() {
- return new ArrayList<String>(selectors.keySet());
+ return new ArrayList<String>(editSelectorMap.keySet());
}
/**
* otherwise
*/
public CssSelector getSelector(String selectorName) {
- return selectors.get(selectorName);
+ return editSelectorMap.get(selectorName);
}
/**
* exist, and <code>null</code> otherwise
*/
public String getSelectorPropertyValue(String selectorName, String propertyKey) {
- CssSelector selector = selectors.get(selectorName);
+ CssSelector selector = allSelectorMap.get(selectorName);
if (selector != null) {
return selector.getPropertyValue(propertyKey);
} else {
}
public void clearAllSelector() {
- if (selectors.size() > 0) {
- selectors.clear();
+ if (allSelectorMap.size() > 0) {
+ allSelectorMap.clear();
+ }
+ if (editSelectorMap.size() > 0) {
+ editSelectorMap.clear();
}
if (getChildren().size() > 0) {
for (Part child : getChildren()) {
}
CssSelector cssSelector = getSelector(selectorName);
- selectors.remove(selectorName);
+ editSelectorMap.remove(selectorName);
+ allSelectorMap.remove(selectorName);
fireEvent(new CssEvent(EventType.CSS_SELECTOR_REMOVED, this, cssSelector.getSelectorName(),
null, null));
} else if (isFireEvent) {
removeSelector(selectorName);
} else {
- selectors.remove(selectorName);
+ editSelectorMap.remove(selectorName);
+ allSelectorMap.remove(selectorName);
}
}
*/
public void setSelectorNameAndPartId(String selectorName, String newSelectorName,
String newPartId) {
- CssSelector cssSelector = selectors.get(selectorName);
+ CssSelector cssSelector = editSelectorMap.get(selectorName);
if (cssSelector != null) {
cssSelector.setSelectorName(newSelectorName);
cssSelector.setPartId(newPartId);
return;
}
- CssSelector selector = selectors.get(selectorName);
+// CssSelector selector = selectors.get(selectorName);
+ CssSelector selector = editSelectorMap.get(selectorName);
if (selector == null) {
return;
}
public void deserialize(String text) {
// TODO : Implementation
}
+
+ public Map<String, CssSelector> getEditSelectorMap() {
+ return editSelectorMap;
+ }
}
fireEvent(new NewCssEvent(EventType.CSS_STYLE_CHANGED, null, this, style.getKey(),
style.getValue()));
}
+
+ public Map<String, CssStyle> getStyleMap() {
+ return styles;
+ }
/**
* Sets a {@link CssStyle}. If not exist style in this {@link CssSelector},
CommandStack commandStack = designEditPartViewer.getEditDomain().getCommandStack();
Command command =
- new CreateCssSelectorCommand(designEditPartViewer.getPageData()
- .getCurrentCssFile(), part, result);
+ new CreateCssSelectorCommand(designEditPartViewer.getPageData(),
+ part, result);
commandStack.execute(command);
}
}
NScreenUtil.nscreen_log("current page css : "
+ pageData.getCurrentCssFile().getCssFilePath());
+ setCurrentCssFileToModel(pageData.getCurrentCssFile());
if (getViewer() != null) {
getViewer().updateStyle();
}
}
protected void setCssFileToModel(CssFile cssFile) {
- if (getPageData() != null) {
- getPageData().getAppliedCssFiles().clear();
- }
if (rootPart != null && cssFile != null) {
for (CssSelector selector : cssFile.getSelectors()) {
String pageId = selector.getPageId();
}
}
+
+ pageData.getAppliedCssFiles().add(cssFile);
+ }
+ }
+
+ protected void setCurrentCssFileToModel(CssFile cssFile) {
+ if (rootPart != null && cssFile != null) {
+ for (CssSelector selector : cssFile.getSelectors()) {
+ String pageId = selector.getPageId();
+ Part pagePart = rootPart.getChildOfIdPropertyValue(pageId, true);
+ if (pagePart != null) {
+ String partId = selector.getPartId();
+ Part part = pagePart.getChildOfIdPropertyValue(partId, true);
+ if (part != null) {
+ part.addEditSelectorWhenReadCss(selector);
+ }
+ }
+
+ }
}
}
FilenameFilterEndsWith filter = new FilenameFilterEndsWith(".css");
File[] files = cssDir.listFiles(filter);
if (!appManager.getPageDataSet().getPages().isEmpty()) {
+ pageData = appManager.getPageDataSet().getPages().get(0);
for (PageData page : appManager.getPageDataSet().getPages()) {
String pageId = page.getName();
List<File> pageCssFile = new ArrayList<File>();
setCssFileToModel(applyList.get(i));
}
}
- pageData = appManager.getPageDataSet().getPages().get(0);
+
} else {
rootPart = null;
}
CssFile cssFile = new CssFile(filePath + IPath.SEPARATOR + getFileName());
IFile ifile = project.getFile(getFileName());
try {
+ if (ifile.exists()) {
+ ifile.delete(true, null);
+ }
byte[] bytes = new byte[0];
InputStream source = new ByteArrayInputStream(bytes);
- ifile.create(source, IResource.NONE, null);
+ ifile.create(source, IResource.FORCE, null);
} catch (CoreException e) {
e.printStackTrace();
}
case STYLE:
CssStyleTab styleTab =
new CssStyleTab(tabFolder, commandStack,
- descriptorManager.getCssDescriptor(),
+ descriptorManager.getCssDescriptor(), pageData,
pageData.getCurrentCssFile(), goingBridge);
// temp end
pageData.addPageListener(styleTab);
import java.util.Collection;
import org.eclipse.gef.commands.CommandStack;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.bridge.DesignerGoingBridge;
import org.tizen.webuibuilder.gef.commands.CreateCssSelectorCommand;
import org.tizen.webuibuilder.model.css.NewCssEvent;
import org.tizen.webuibuilder.model.css.descriptors.CssDescriptor;
import org.tizen.webuibuilder.model.css.descriptors.CssPropertyDescriptor;
+import org.tizen.webuibuilder.model.page.PageData;
import org.tizen.webuibuilder.ui.views.properties.method.IValueChangeListener;
import org.tizen.webuibuilder.ui.views.properties.method.Method;
import org.tizen.webuibuilder.ui.views.properties.method.MethodEvent;
private CssDescriptor cssDescriptor;
private CssFile cssFile;
private CssSelector selector;
+ private PageData pageData;
/**
* Constructs a new instance of this class given its {@link CommandStack},
* a {@link CssStyle}
*/
public CssStyleEventDelegater(CommandStack commandStack, CssDescriptor cssDescriptor,
- CssStyleTab styleTab, DesignerGoingBridge goingBridge) {
+ CssStyleTab styleTab, PageData pageData, DesignerGoingBridge goingBridge) {
this.styleTab = styleTab;
this.commandStack = commandStack;
this.cssDescriptor = cssDescriptor;
+ this.pageData = pageData;
this.goingBridge = goingBridge;
}
Part part = styleTab.getModel();
SetCssStyleCommand command =
- new SetCssStyleCommand(cssFile, part, selector, key, value);
+ new SetCssStyleCommand(pageData, part, selector.getSelectorName(), key, value);
commandStack.execute(command);
}
}
return;
} else {
CreateCssSelectorCommand command =
- new CreateCssSelectorCommand(cssFile, styleTab.getModel(), selectorName);
+ new CreateCssSelectorCommand(pageData, styleTab.getModel(), selectorName);
commandStack.execute(command);
}
}
- public void addCssSelector(CssSelector selector) {
- if (selector == null) {
- return;
- } else {
- CreateCssSelectorCommand command =
- new CreateCssSelectorCommand(cssFile, styleTab.getModel(), selector);
- commandStack.execute(command);
- }
- }
public void removeCssSelector(CssSelector selector) {
if (selector == null) {
import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
import org.tizen.webuibuilder.model.descriptors.TypeDescriptor.Types;
import org.tizen.webuibuilder.model.page.IPageDataListener;
+import org.tizen.webuibuilder.model.page.PageData;
import org.tizen.webuibuilder.model.page.PageDataEvent;
import org.tizen.webuibuilder.ui.views.properties.CategoryComposite;
import org.tizen.webuibuilder.ui.views.properties.PropertiesConstant;
* a {@link CssFile}
*/
public CssStyleTab(CTabFolder tabFolder, CommandStack commandStack,
- CssDescriptor cssDescriptor, CssFile cssFile, DesignerGoingBridge goingBridge) {
+ CssDescriptor cssDescriptor, PageData pageData, CssFile cssFile, DesignerGoingBridge goingBridge) {
super(tabFolder, SWT.NONE, TabIndex.STYLE.getIndex(), goingBridge);
setText(PropertiesConstant.STYLE);
this.commandStack = commandStack;
this.cssDescriptor = cssDescriptor;
- cssDelegater = new CssStyleEventDelegater(commandStack, cssDescriptor, this, goingBridge);
+ cssDelegater = new CssStyleEventDelegater(commandStack, cssDescriptor, this, pageData, goingBridge);
animDelegater = new CssStyleAnimationEventDelegater(commandStack, this);
setCssFile(cssFile);
/* TODO Log */
cssDelegater.setCssFile(cssFile);
setDefaultSelector();
- removeListeners();
- addListeners();
+// removeListeners();
+// addListeners();
return true;
} else {
return false;
if (model != null) {
model.removeCssListener(animDelegater);
model.removePartListener(cssDelegater);
-// model.removeCssListener(cssDelegater);
}
removeCssListener();
clip.setInitialData(getModel());
setDefaultSelector();
- removeListeners();
- addListeners();
+// removeListeners();
+// addListeners();
// delegater.setModel(models);
}
// CSS Delegater
cssDelegater.setCssSelector(currentSelector);
- removeListeners();
- addListeners();
// if (cssCategory != null && !cssCategory.isDisposed()) {
// cssCategory.setSelector(selectorName);
public void pageChanged(PageDataEvent e) {
if (setCssFile(e.getPage().getCurrentCssFile())) {
refresh();
+ removeListeners();
+ addListeners();
}
}