From: mucikan Date: Thu, 27 Feb 2014 08:01:43 +0000 (+0900) Subject: PROP : Refactoring StyleTab. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F35%2F16935%2F1;p=sdk%2Fide%2Fweb-ui-builder-eplugin.git PROP : Refactoring StyleTab. Refactoring StyleTab. Advanced performance StyleTab for Animator. Change-Id: I195359ef16a518d83056fcc50875e0bfc5452063 Signed-off-by: mucikan --- diff --git a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml index 1a108fa..957e382 100644 --- a/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml +++ b/org.tizen.webuibuilder/res/descriptors/Tizen-web-ui-fw/tizen.types.xml @@ -646,6 +646,7 @@ + diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/editor/PageDesigner.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/editor/PageDesigner.java index 7d359fb..41d9106 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/editor/PageDesigner.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/editor/PageDesigner.java @@ -163,8 +163,8 @@ import org.tizen.webuibuilder.ui.editor.ruler.DesignerRulerProvider; import org.tizen.webuibuilder.ui.editor.texteditor.TextEditor; import org.tizen.webuibuilder.ui.editor.viewer.DesignerBrowserViewer; import org.tizen.webuibuilder.ui.editor.viewer.HoverBrowserRulerComposite; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage.PropertiesMode; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage.PropertiesMode; public class PageDesigner extends GraphicalEditor implements CommandStackListener, @@ -239,7 +239,7 @@ public class PageDesigner extends GraphicalEditor implements CommandStackListene private CTabItem previewTabItem; private CTabItem animatorTabItem; private RulerComposite animatorRuler; - private DesignerPropertiesPage properties; + private PropertiesPage properties; /** * Animation Timeline Page */ @@ -921,12 +921,9 @@ public class PageDesigner extends GraphicalEditor implements CommandStackListene } // final DesignerPropertiesPage properties = properties = - new DesignerPropertiesPage( - getCommandStack(), - getDescriptorManager(), - getPageData(), - actionRegistry.getAction(ActionFactory.UNDO.getId()), - actionRegistry.getAction(ActionFactory.REDO.getId())); + new PropertiesPage(getCommandStack(), getDescriptorManager(), getPageData(), + actionRegistry.getAction(ActionFactory.UNDO.getId()), + actionRegistry.getAction(ActionFactory.REDO.getId())); return properties; } if (type == IContentOutlinePage.class && designer != null) { @@ -1523,7 +1520,7 @@ public class PageDesigner extends GraphicalEditor implements CommandStackListene return project; } - public DesignerPropertiesPage getProperties() { + public PropertiesPage getProperties() { return properties; } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesListenerHelper.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesListenerHelper.java index 70dbd39..adead5d 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesListenerHelper.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesListenerHelper.java @@ -34,10 +34,10 @@ import org.tizen.webuibuilder.animator.ui.editor.viewer.IAnimationListener; public class PropertiesListenerHelper implements IAnimationListener { - private DesignerPropertiesPage page; + private PropertiesPage page; private boolean isActivate = false; - public PropertiesListenerHelper(DesignerPropertiesPage page) { + public PropertiesListenerHelper(PropertiesPage page) { this.page = page; Page oPage = (Page) page; diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/DesignerPropertiesPage.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesPage.java similarity index 78% rename from org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/DesignerPropertiesPage.java rename to org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesPage.java index ddec373..d181b04 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/DesignerPropertiesPage.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesPage.java @@ -47,9 +47,6 @@ import org.eclipse.ui.views.properties.IPropertySheetPage; import org.eclipse.ui.views.properties.PropertySheet; import org.tizen.webuibuilder.animator.model.AnimatorFrame; import org.tizen.webuibuilder.animator.model.AnimatorModel; -import org.tizen.webuibuilder.animator.model.AnimatorModelEvent; -import org.tizen.webuibuilder.animator.model.AnimatorModelManager; -import org.tizen.webuibuilder.animator.model.IAnimatorModelListener; import org.tizen.webuibuilder.animator.ui.editor.viewer.AnimationEvent; import org.tizen.webuibuilder.animator.ui.editor.viewer.AnimatorBrowserViewer; import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineView; @@ -70,8 +67,7 @@ import org.tizen.webuibuilder.ui.views.properties.style.CssStyleTab; /** * Page-book page for the {@link PropertySheet}. This page is activated in PageDesigner. */ -public class DesignerPropertiesPage extends Page implements IPropertySheetPage, IPartListener, - IAnimatorModelListener { +public class PropertiesPage extends Page implements IPropertySheetPage, IPartListener { /** * PropertiesMode consist of DESIGN, ANIMATOR. @@ -81,7 +77,7 @@ public class DesignerPropertiesPage extends Page implements IPropertySheetPage, } /** - * TabIndex for {@link DesignerPropertiesPage}. + * TabIndex for {@link PropertiesPage}. */ public enum TabIndex { ATTRIBUTES(0), STYLE(1), ACTION(2); @@ -93,7 +89,7 @@ public class DesignerPropertiesPage extends Page implements IPropertySheetPage, } /** - * Gets index of tab on {@link DesignerPropertiesPage}. + * Gets index of tab on {@link PropertiesPage}. * * @return index of tab */ @@ -131,7 +127,7 @@ public class DesignerPropertiesPage extends Page implements IPropertySheetPage, * @param redoAction * {@link IAction} for redo. */ - public DesignerPropertiesPage(CommandStack commandStack, DescriptorManager descprictorManager, + public PropertiesPage(CommandStack commandStack, DescriptorManager descprictorManager, PageData pageData, IAction undoAction, IAction redoAction) { this.commandStack = commandStack; this.descriptorManager = descprictorManager; @@ -157,11 +153,11 @@ public class DesignerPropertiesPage extends Page implements IPropertySheetPage, tabFolder.setSelection(0); tabFolder.pack(); - AnimatorModelManager manager = - AnimatorModelManager.getInstance(AnimatorUtils.getAppManager()); - Part rootPart = manager.getRootPart(); - - rootPart.addAnimatorModelListener(this); +// AnimatorModelManager manager = +// AnimatorModelManager.getInstance(AnimatorUtils.getAppManager()); +// Part rootPart = manager.getRootPart(); +// +// rootPart.addAnimatorModelListener(this); listnerHelper = new PropertiesListenerHelper(this); // AnimatorBrowserViewer.addAnimationListener(this); @@ -186,11 +182,11 @@ public class DesignerPropertiesPage extends Page implements IPropertySheetPage, page.removePartListener(this); } - AnimatorModelManager manager = - AnimatorModelManager.getInstance(AnimatorUtils.getAppManager()); - Part rootPart = manager.getRootPart(); - - rootPart.removeAnimatorModelListener(this); +// AnimatorModelManager manager = +// AnimatorModelManager.getInstance(AnimatorUtils.getAppManager()); +// Part rootPart = manager.getRootPart(); +// +// rootPart.removeAnimatorModelListener(this); // AnimatorBrowserViewer.removeAnimationListener(this); AnimatorBrowserViewer.removeAnimationListener(listnerHelper); @@ -439,131 +435,6 @@ public class DesignerPropertiesPage extends Page implements IPropertySheetPage, return styleTab; } - @Override - public void animationAdd(AnimatorModelEvent e) { - - } - - @Override - public void animationRemove(AnimatorModelEvent e) { - - } - - @Override - public void animationEdit(AnimatorModelEvent e) { - - } - - @Override - public void widgetAdd(AnimatorModelEvent e) { - - } - - @Override - public void widgetRemove(AnimatorModelEvent e) { - - } - - @Override - public void widgetEdit(AnimatorModelEvent e) { - - } - - @Override - public void keyframeAdd(AnimatorModelEvent e) { - - } - - @Override - public void keyframeRemove(AnimatorModelEvent e) { - - } - - @Override - public void keyframeEdit(AnimatorModelEvent e) { - - } - - @Override - public void keyframeMerge(AnimatorModelEvent e) { - - } - - @Override - public void actionAdd(AnimatorModelEvent e) { - - } - - @Override - public void actionRemove(AnimatorModelEvent e) { - - } - - @Override - public void actionEdit(AnimatorModelEvent e) { - - } - - @Override - public void frameAdd(AnimatorModelEvent e) { - // AnimatorModel animatorModel = e.getModel(); - // - // if(animatorModel != null && animatorModel instanceof AnimatorFrame){ - // CssStyleTab styleTab = getCssStyleTab(); - // if(styleTab !=null){ - // styleTab.setFrame((AnimatorFrame)animatorModel); - // } - // } - } - - @Override - public void frameRemove(AnimatorModelEvent e) { - - } - - @Override - public void frameEdit(AnimatorModelEvent e) { - AnimatorModel animatorModel = e.getModel(); - - // if(animatorModel != null && animatorModel instanceof AnimatorFrame){ - // CssStyleTab styleTab = getCssStyleTab(); - // if(styleTab !=null){ - // styleTab.refreshMethodWithFrame(false); - // } - // } - } - - @Override - public void propertyChange(AnimatorModelEvent e) { - // lock comming - // when locked non show or disable - // AnimatorProperty propertiy = e.getAnimatorProperty(); - // if(propertiy != null && propertiy.getPropertyName() == "LOCK"){ - // - // }else{ - // - // } - - } - - @Override - public void selectionChanged(AnimatorModelEvent e) { - // AnimatorModel model = e.getModel(); - // if(model instanceof AnimatorFrame){ - // Logger.trace("AnimatorFrame selection Changed"); - // - // refreshWithFrame((AnimatorFrame)model); - // }/*else if(model instanceof AnimatorKeyframe){ - // Logger.trace("AnimatorKeyframe selection Changed"); - // - // }*/else{ - // - // Logger.trace("not frame selection Changed"); - // refreshWithFrame(null); - // } - - } - public void animationSnapShot2(AnimationEvent e) { if (mode == PropertiesMode.ANIMATOR) { diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesTabItem.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesTabItem.java index 26ba95e..4b15a3c 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesTabItem.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/PropertiesTabItem.java @@ -47,12 +47,12 @@ import org.eclipse.swt.widgets.Listener; import org.tizen.webuibuilder.BuilderConstants; import org.tizen.webuibuilder.model.DocumentPart; import org.tizen.webuibuilder.model.Part; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage.PropertiesMode; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage.PropertiesMode; import org.tizen.webuibuilder.utility.ResourceManager; /** - * Instances of this class represent a property that represent a {@link DesignerPropertiesPage}. + * Instances of this class represent a property that represent a {@link PropertiesPage}. */ public abstract class PropertiesTabItem extends CTabItem { diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/action/ActionTab.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/action/ActionTab.java index faedd75..d0771d5 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/action/ActionTab.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/action/ActionTab.java @@ -44,7 +44,7 @@ import org.tizen.webuibuilder.model.DocumentPart; import org.tizen.webuibuilder.model.Part; import org.tizen.webuibuilder.model.descriptors.EventDescriptor; import org.tizen.webuibuilder.model.descriptors.EventParamDescriptor; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage.TabIndex; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage.TabIndex; import org.tizen.webuibuilder.ui.views.properties.PropertiesConstant; import org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem; import org.tizen.webuibuilder.ui.views.properties.method.Method; diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/attributes/AttributesTab.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/attributes/AttributesTab.java index 4f98a54..0653da7 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/attributes/AttributesTab.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/attributes/AttributesTab.java @@ -42,7 +42,7 @@ import org.tizen.webuibuilder.model.descriptors.DescriptorManager; import org.tizen.webuibuilder.model.descriptors.PropertyConditionDescriptor; import org.tizen.webuibuilder.model.descriptors.PropertyDescriptor; import org.tizen.webuibuilder.ui.views.properties.CategoryComposite; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage.TabIndex; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage.TabIndex; import org.tizen.webuibuilder.ui.views.properties.PropertiesConstant; import org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem; import org.tizen.webuibuilder.ui.views.properties.method.IGroupMethod; @@ -84,7 +84,6 @@ public class AttributesTab extends PropertiesTabItem { setText(PropertiesConstant.ATTRIBUTES); delegater = new AttributesEventDelegater(commandStack, this); factory = MethodCreationFactory.getInstance(); - factory.setCommandStack(commandStack); refresh(); } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/method/MethodCreationFactory.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/method/MethodCreationFactory.java index 4760a7d..b86c858 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/method/MethodCreationFactory.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/method/MethodCreationFactory.java @@ -25,7 +25,6 @@ package org.tizen.webuibuilder.ui.views.properties.method; import java.util.List; -import org.eclipse.gef.commands.CommandStack; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.tizen.webuibuilder.BuilderConstants; @@ -42,7 +41,6 @@ import org.tizen.webuibuilder.ui.views.properties.method.Method.MethodType; */ public class MethodCreationFactory { - private CommandStack commandStack; private Part model; private static MethodCreationFactory instance; @@ -62,15 +60,6 @@ public class MethodCreationFactory { return instance; } - /** - * Sets a {@link CommandStack} for {@link HtmlMethod}. - * - * @param commandStack - * a {@link CommandStack} - */ - public void setCommandStack(CommandStack commandStack) { - this.commandStack = commandStack; - } /** * Sets a {@link Part} @@ -141,11 +130,11 @@ public class MethodCreationFactory { method = combo; } break; - case HTMLSTRING: - method = - new HtmlMethod(parent, SWT.NONE, methodType, name, value, displayName, - model, commandStack); - break; +// case HTMLSTRING: +// method = +// new HtmlMethod(parent, SWT.NONE, methodType, name, value, displayName, +// model, commandStack); +// break; case IMAGE: method = new ImageMethod(parent, SWT.NONE, methodType, name, value, displayName, diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/style/CssStyleTab.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/style/CssStyleTab.java index 55a480c..695a9e1 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/style/CssStyleTab.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/style/CssStyleTab.java @@ -24,10 +24,10 @@ package org.tizen.webuibuilder.ui.views.properties.style; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; -import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.commands.Command; import org.eclipse.gef.commands.CommandStack; import org.eclipse.swt.SWT; @@ -39,13 +39,13 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.events.ExpansionAdapter; import org.eclipse.ui.forms.events.ExpansionEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tizen.webuibuilder.BuilderConstants; import org.tizen.webuibuilder.animator.model.AnimatorFrame; -import org.tizen.webuibuilder.animator.model.AnimatorKeyframe; import org.tizen.webuibuilder.animator.model.AnimatorModel; import org.tizen.webuibuilder.animator.model.AnimatorModelManager; import org.tizen.webuibuilder.animator.model.AnimatorSelector; -import org.tizen.webuibuilder.animator.model.AnimatorWidget; import org.tizen.webuibuilder.animator.ui.views.timeline.command.TimelineFrameCreateCommand; import org.tizen.webuibuilder.animator.utils.AnimatorUtils; import org.tizen.webuibuilder.model.DocumentPart; @@ -62,8 +62,8 @@ import org.tizen.webuibuilder.model.descriptors.TypeDescriptor.Types; import org.tizen.webuibuilder.model.page.IPageDataListener; import org.tizen.webuibuilder.model.page.PageDataEvent; import org.tizen.webuibuilder.ui.views.properties.CategoryComposite; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage.PropertiesMode; -import org.tizen.webuibuilder.ui.views.properties.DesignerPropertiesPage.TabIndex; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage.PropertiesMode; +import org.tizen.webuibuilder.ui.views.properties.PropertiesPage.TabIndex; import org.tizen.webuibuilder.ui.views.properties.PropertiesConstant; import org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem; import org.tizen.webuibuilder.ui.views.properties.method.ClipMethod; @@ -94,7 +94,7 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener private CssFile cssFile; private CssCategoryDescriptor fakeDescriptor; - // delegater + // Delegater private CssStyleEventDelegater cssDelegater; private CssStyleAnimationEventDelegater animDelegater; @@ -104,7 +104,8 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener // Methods private MethodCreationFactory factory; - private List methods = new ArrayList(); + // private List methods = new ArrayList(); + private Map methods = new HashMap(); private CustomCSSMethod customCss; private MetricsMethod metrics; private ClipMethod clip; @@ -117,8 +118,9 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener private AnimatorFrame frame; /** - * Constructs a new instance of this class given its parent tabFolder (which must be a - * CTabFolder), a {@link CommandStack}, a {@link CssDescriptor} and a {@link CssFile}. + * Constructs a new instance of this class given its parent tabFolder (which + * must be a CTabFolder), a {@link CommandStack}, a {@link CssDescriptor} + * and a {@link CssFile}. * * @param tabFolder * a CTabFolder. cannot be null @@ -141,37 +143,49 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener animDelegater = new CssStyleAnimationEventDelegater(commandStack, this); factory = MethodCreationFactory.getInstance(); - factory.setCommandStack(commandStack); - createStyleContents(); + createDesignerContents(); } - /** - * createStyleContents - */ - private void createStyleContents() { - // create no content method - if (noContent == null) { + private void createNoContent() { + if (noContent == null || noContent.isDisposed()) { noContent = new NoContentMethod(content, MethodType.STYLE); noContent.setLayoutData(new GridData(GridData.CENTER, GridData.FILL, true, true)); } + } - // create multi content method - if (multiContent == null) { + private void createMultiContent() { + if (multiContent == null || multiContent.isDisposed()) { multiContent = new MultiSelectMethod(content, MethodType.STYLE); multiContent.setLayoutData(new GridData(GridData.CENTER, GridData.FILL, true, true)); } + } - categoryContainer = new Composite(content, SWT.NONE); - categoryContainer.setLayout(new GridLayout(1, true)); - categoryContainer.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); + private void createCategoryContainer() { + if (categoryContainer == null || categoryContainer.isDisposed()) { + categoryContainer = new Composite(content, SWT.NONE); + categoryContainer.setLayout(new GridLayout(1, true)); + categoryContainer.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); + } + } + + /** + * createStyleContents + */ + private void createDesignerContents() { + // create no content method + createNoContent(); + + // create multi content method + createMultiContent(); + + // create category container + createCategoryContainer(); // create methods List descriptors = cssDescriptor.getCssCategoryDescriptors(); for (CssCategoryDescriptor descriptor : descriptors) { - String categoryName = descriptor.getDisplayName(); - CategoryComposite categoryComposite = getCategory(descriptor); for (CssPropertyDescriptor property : descriptor.getCssPropertyDescriptors()) { @@ -196,23 +210,19 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener method.setLabelRightData(32, 0); method.setControlRightData(100, 0); } - addListenerToMethod2(method); + addListenerToMethod(method); method.setLabelTooltipText(property.getPropertyDisplayName()); // method.refresh(); - methods.add(method); + methods.put(method.getMethodName(), method); categoryComposite.setMethod(method); } } - for (Method method : methods) { + for (Method method : methods.values()) { applyCondition(method); } - - // content.pack(); - // content.layout(); - // resizeScrolledComposite(); } /** @@ -241,15 +251,9 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener private void addListeners() { Part model = getModel(); if (model != null) { - // model.addPartListener(cssDelegater); - // model.addCssListener(delegater); - - // model.addPartListener(animDelegater); model.addCssListener(animDelegater); addCssListener(); - // TODO - // selector.addCssSelectorListener(cssDelegater); } } @@ -269,10 +273,6 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener private void removeListeners() { Part model = getModel(); if (model != null) { - // model.removePartListener(cssDelegater); - // model.removeCssListener(delegater); - - // model.removePartListener(animDelegater); model.removeCssListener(animDelegater); } @@ -308,7 +308,9 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener /* * (non-Javadoc) * - * @see org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#setModel(java.util.List) + * @see + * org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#setModel + * (java.util.List) */ public void setModel(List models) { super.setModel(models); @@ -378,8 +380,11 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener private void includeComposite(Composite composite) { GridData noContentData = (GridData) noContent.getLayoutData(); GridData multiContentData = (GridData) multiContent.getLayoutData(); + + Logger logger = LoggerFactory.getLogger(this.getClass()); + if (categoryContainer == null || categoryContainer.isDisposed()) { - /* TODO Log */ + logger.error("Category Conatainer disposed..."); } GridData categoryData = (GridData) categoryContainer.getLayoutData(); @@ -405,7 +410,7 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener categoryData.exclude = false; categoryContainer.setVisible(true); } else { - // TODO Log(getClass(), "invalid composite for include to StyleTab."); + logger.error("Invalid composite for include to StyleTab"); } // content.layout(); } @@ -413,7 +418,8 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener /* * (non-Javadoc) * - * @see org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#refresh() + * @see + * org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#refresh() */ @Override public void refresh() { @@ -428,44 +434,43 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener includeComposite(multiContent); } else { /* defense code */ - if (isAnimatorMode2()) { - includeComposite(noContent); + if (getMode().equals(PropertiesMode.ANIMATOR)) { return; } if (methods == null || methods.isEmpty()) { - createStyleContents(); + createDesignerContents(); } includeComposite(categoryContainer); List cloneStyles = new ArrayList(selector.getStyles()); boolean refreshFlag = true; - for (Method method : methods) { + for (Method method : methods.values()) { refreshFlag = true; String methodName = method.getMethodName(); String positionValue = BuilderConstants.EMPTY; // refresh position - if(model.getPosition() != null){ - if (methodName.equals("width")) { - positionValue = model.getPosition().width + "px"; - method.refreshValue(methodName, positionValue); - refreshManagedMethods(methodName, positionValue, false); - refreshFlag = false; - } else if (methodName.equals("height")) { - positionValue = model.getPosition().height + "px"; - method.refreshValue(methodName, positionValue); - refreshManagedMethods(methodName, positionValue, false); - refreshFlag = false; - } + if (model.getPosition() != null) { + if (methodName.equals("width")) { + positionValue = model.getPosition().width + "px"; + method.refreshValue(methodName, positionValue); + refreshManagedMethods(methodName, positionValue, false); + refreshFlag = false; + } else if (methodName.equals("height")) { + positionValue = model.getPosition().height + "px"; + method.refreshValue(methodName, positionValue); + refreshManagedMethods(methodName, positionValue, false); + refreshFlag = false; + } } for (CssStyle style : cloneStyles) { if (methodName.equals(style.getKey())) { String styleValue = style.getStringValue(); method.refreshValue(methodName, styleValue); -// setCategoryBrief(method, methodName, styleValue); + // setCategoryBrief(method, methodName, styleValue); refreshManagedMethods(methodName, styleValue, true); @@ -560,7 +565,9 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener /* * (non-Javadoc) * - * @see org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#refresh(java.util.List) + * @see + * org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#refresh( + * java.util.List) */ @Override public void refresh(List keys) { @@ -580,7 +587,7 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener return; } - Part model = getModel(); + // Part model = getModel(); this.frame = null; /* 1. part to frame */ // if (model != null) { @@ -594,49 +601,6 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener } /** - * Refreshes with {@link AnimatorFrame} - * - * @param frame - * a {@link AnimatorFrame} - */ - public void refreshWithFrame(AnimatorFrame frame) { - - /* TODO Log */ - - if (content.isDisposed()) { - return; - } - - Part model = getModel(); - - /* 1. part to frame */ - if (model != null) { - clear(); - removeListeners(); - super.setModel(null); - } - - /* check to null */ - if (frame == null) { - clear(); - removeListeners(); - super.setModel(null); - return; - } - - /* 2. other frame to frame */ - /* 3. same frame to frame */ - boolean isSameFrame = false; - if (this.frame == frame) { - isSameFrame = true; - } - - this.frame = frame; - - refreshMethodWithFrame(isSameFrame); - } - - /** * checkNameRestricted * * @param restrictNames @@ -679,90 +643,91 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener } /** - * resetMethod + * createAnimatorContents */ - private void resetMethod() { + private void createAnimatorContents() { + // create no content method + createNoContent(); - if (methods == null || methods.size() == 0) { - List descriptors = cssDescriptor.getCssCategoryDescriptors(); + // create multi content method + createMultiContent(); - /* create parents composite */ - categoryContainer = new Composite(content, SWT.NONE); - categoryContainer.setLayout(new GridLayout(1, true)); - categoryContainer.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); + // create category container + createCategoryContainer(); - for (CssCategoryDescriptor descriptor : descriptors) { - String categoryName = descriptor.getDisplayName(); - String categoryRealName = descriptor.getName(); + List descriptors = cssDescriptor.getCssCategoryDescriptors(); - String[] restrictCstegoryNames = { "custom" }; - if (checkNameRestricted(restrictCstegoryNames, categoryRealName)) { - continue; - } + for (CssCategoryDescriptor descriptor : descriptors) { + String categoryRealName = descriptor.getName(); - CssCategoryDescriptor childDescriptor = descriptor; - String changerCstegoryNames = "transform"; - if (changerCstegoryNames.equals(categoryRealName)) { - childDescriptor = getFakeDescriptor(descriptor); - } + String[] restrictCstegoryNames = { "custom" }; + if (checkNameRestricted(restrictCstegoryNames, categoryRealName)) { + continue; + } - CategoryComposite categoryComposite = getCategory(descriptor); + CssCategoryDescriptor childDescriptor = descriptor; + String changerCstegoryNames = "transform"; + if (changerCstegoryNames.equals(categoryRealName)) { + childDescriptor = getFakeDescriptor(descriptor); + } - for (CssPropertyDescriptor property : childDescriptor.getCssPropertyDescriptors()) { + CategoryComposite categoryComposite = getCategory(descriptor); - // TODO : get value from selector - String value = property.getDefaultValue(); - Method method = - factory.createMethod(categoryComposite.getClient(), property, value, - MethodType.STYLE, true); - if (method == null) { - continue; - } + for (CssPropertyDescriptor property : childDescriptor.getCssPropertyDescriptors()) { - /* exception code for remove some method */ - String[] restrictNames = { "position", "left", "top", "width", "height" }; - if (checkNameRestricted(restrictNames, property.getPropertyName())) { - /* TODO make descriptor */ - method.setControlable(false); - } + // TODO : get value from selector + String value = property.getDefaultValue(); + Method method = + factory.createMethod(categoryComposite.getClient(), property, value, + MethodType.STYLE, true); + if (method == null) { + continue; + } - setManagedMethod(method); - - if (property.getInline()) { - method.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, - false, 1, 1)); - method.setLabelRightData(50, 1); - method.setControlRightData(90, 0); - } else if (changerCstegoryNames.equals(categoryRealName)) { - method.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, - false, 2, 1)); - method.setLabelRightData(32, 0); - method.setControlRightData(90, 0); - } else { - method.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, - false, 2, 1)); - method.setLabelRightData(32, 0); - method.setControlRightData(100, 0); - } + /* exception code for remove some method */ + String[] restrictNames = { "position", "left", "top", "width", "height" }; + if (checkNameRestricted(restrictNames, property.getPropertyName())) { + /* TODO make descriptor */ + method.setControlable(false); + } - // method.setDefaultValue(property.getDefaultValue()); - method.setLabelTooltipText(property.getPropertyDisplayName()); - method.refresh(); + setManagedMethod(method); - if (isGropMethodType(property) && isMethodEmptyName(method)) { - addListenerFromGroupMethod(method); - } else { - methods.add(method); - } - addListenerToMethod2(method); - method.enableFuncButton(true); + if (property.getInline()) { + method.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1, + 1)); + method.setLabelRightData(50, 1); + method.setControlRightData(90, 0); + } else if (changerCstegoryNames.equals(categoryRealName)) { + method.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 2, + 1)); + method.setLabelRightData(32, 0); + method.setControlRightData(90, 0); + } else { + method.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 2, + 1)); + method.setLabelRightData(32, 0); + method.setControlRightData(100, 0); } - } + // method.setDefaultValue(property.getDefaultValue()); + method.setLabelTooltipText(property.getPropertyDisplayName()); + method.refresh(); - for (Method method : methods) { - applyCondition(method); + if (isGropMethodType(property) && isMethodEmptyName(method)) { + addListenerFromGroupMethod(method); + } else { + methods.put(method.getMethodName(), method); + } + addListenerToMethod(method); + method.enableFuncButton(true); + // categoryComposite.setMethod(method); } + + } + + for (Method method : methods.values()) { + applyCondition(method); } return; } @@ -775,7 +740,10 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener */ private void addListenerFromGroupMethod(Method method) { List childrenMethods = ((IGroupMethod) method).getChildMethods(); - methods.addAll(childrenMethods); + for (Method child : childrenMethods) { + methods.put(child.getMethodName(), child); + } + // methods.addAll(childrenMethods); for (Method childMethod : childrenMethods) { if (childMethod instanceof GroupMethod && isMethodEmptyName(childMethod)) { addListenerFromGroupMethod(childMethod); @@ -825,22 +793,6 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener } /** - * methodsRefreshWithDefault - */ - private void methodsRefreshWithDefault() { - for (Method method : methods) { - String methodName = method.getMethodName(); - - // if(methodName.equals("opacity")){ - // int num = Integer.parseInt(method.getDefaultValue()); - // method.refreshValue(methodName, String.valueOf(num*100)); - // }else{ - method.refreshValue(methodName, method.getDefaultValue()); - // } - } - } - - /** * Refreshes method with snapshot for animator. * * @param map @@ -855,8 +807,9 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener if (methods == null || methods.size() == 0) { /* need reset because method getting patter is deferente */ - resetMethod(); + createAnimatorContents(); } + includeComposite(categoryContainer); // basicMethodSetting(true); /* frame to properties */ @@ -865,107 +818,16 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener snapshotTocCssDelegater(map); } - includeComposite(categoryContainer); - content.pack(); - content.layout(); - resizeScrolledComposite(); - } - - /** - * Refreshes method with frame for animator. - * - * @param isSameFrame - */ - public void refreshMethodWithFrame(boolean isSameFrame) { - /* TODO Log */ - - if (frame == null) { - clear(); - return; - } - - resetMethod(); - - basicMethodSetting(isSameFrame); - - /* frame to properties */ - { - /* delegater set from frame */ - frameTocCssDelegater(); - } + // for (CategoryComposite category : categories) { + // category.refreshBrief(); + // } - includeComposite(categoryContainer); - content.pack(); - content.layout(); + // content.pack(); + // content.layout(); resizeScrolledComposite(); } /** - * basicMethodSetting - * - * @param isSameFrame - */ - private void basicMethodSetting(boolean isSameFrame) { - - while (!isSameFrame) { - - /* method refresh to default */ - methodsRefreshWithDefault(); - - /* model to properties for properties initial setting */ - AnimatorKeyframe key = (AnimatorKeyframe) frame.getParent(); - if (key == null) - break; - AnimatorSelector selector = (AnimatorSelector) key.getParent(); - if (selector == null) - break; - AnimatorWidget widget = (AnimatorWidget) selector.getParent(); - if (widget == null) - break; - Part partModel = widget.getPartLink(); - if (partModel == null) - break; - - if (partModel != null) { - String sLeft = "left"; - String sTop = "top"; - String sWidth = "width"; - String sHeight = "height"; - Rectangle rect = partModel.getPosition(); - - Method method = getMethod(sLeft); - if (method != null) { - method.refreshValue(sLeft, String.valueOf(rect.x)); - } - - method = getMethod(sTop); - if (method != null) { - method.refreshValue(sTop, String.valueOf(rect.y)); - } - - method = getMethod(sWidth); - if (method != null) { - method.refreshValue(sWidth, String.valueOf(rect.width)); - } - - method = getMethod(sHeight); - if (method != null) { - method.refreshValue(sHeight, String.valueOf(rect.height)); - } - - } - break; - } - } - - /** - * frameTocCssDelegater - */ - private void frameTocCssDelegater() { - animDelegater.setFrame(frame); - } - - /** * snapshotTocCssDelegater * * @param map @@ -975,16 +837,6 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener } /** - * Sets a {@link AnimatorFrame} - * - * @param frame - * a {@link AnimatorFrame} - */ - public void setFrame(AnimatorFrame frame) { - this.frame = frame; - } - - /** * Gets a {@link AnimatorFrame}. * * @return a {@link AnimatorFrame} @@ -1002,7 +854,7 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener category.getClient().dispose(); } - for (Method method : methods) { + for (Method method : methods.values()) { method.dispose(); } @@ -1069,7 +921,14 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener categories.add(categoryComposite); return categoryComposite; } - + + /** + * Sets key/value to {@link Method} for brief message on category. + * + * @param method a {@link Method} + * @param key + * @param value + */ public void setCategoryBrief(Method method, String key, String value) { for (CategoryComposite category : categories) { if (category.hasMethod(method)) { @@ -1082,23 +941,27 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener Part model = getModel(); value = model.getPosition().height + "px"; } - + category.setBriefMessage(key, value); } } } /** - * addListenerToMethod2 + * addListenerToMethod * * @param method * {@link Method} */ - private void addListenerToMethod2(final Method method) { - if (isAnimatorMode2()) { + private void addListenerToMethod(final Method method) { + PropertiesMode mode = getMode(); + if (mode.equals(PropertiesMode.DESIGN)) { + addDesignerListenerToMethod(method); + } else if (mode.equals(PropertiesMode.ANIMATOR)) { addAnimationListenerToMethod(method); } else { - addDesignerListenerToMethod(method); + Logger logger = LoggerFactory.getLogger(this.getClass()); + logger.error("Invalid properties mode. Mode is " + mode); } } @@ -1228,7 +1091,7 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener * Applies conditions in this has all the {@link Method}. */ public void applyConditions() { - for (Method method : methods) { + for (Method method : methods.values()) { applyCondition(method); } } @@ -1295,22 +1158,9 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener * @return a {@link Method} */ public Method getMethod(String name) { - for (Method method : methods) { - if (method.getMethodName().equals(name)) { - return method; - } - } - return null; + return methods.get(name); } - // public void getNSetMethod(String name, String value) { - // Method method = getMethod(name); - // if (method != null) { - // method.setValue(value); - // } - // return; - // } - /** * getEnableByParent * @@ -1327,15 +1177,6 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener } /** - * Get list of {@link Method}. - * - * @return list of {@link Method} - */ - public List getMethods() { - return methods; - } - - /** * Applies condition by child with {@link Method}. * * @param method @@ -1361,48 +1202,12 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener } } - /** - * Gets a method with parent. - * - * @param parentName - * parent method name - * @param name - * method name - * @return a {@link Method} - */ - // public Method getMethodByParent(String parentName, String name) { - // if (parentName == null || name == null || getModel() instanceof DocumentPart) { - // return null; - // } - // - // Method parent = getMethod(parentName); - // if (parent != null) { - // if (parent instanceof IGroupMethod) { - // List children = ((IGroupMethod) parent).getChildMethods(); - // for (Method child : children) { - // if (child.getMethodName().equals(name)) { - // return child; - // } - // } - // } - // } - // return null; - // } - - /** - * isAnimatorMode2 - * - * @return - */ - private boolean isAnimatorMode2() { - return (getMode() == PropertiesMode.ANIMATOR); - } - /* * (non-Javadoc) * * @see - * org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#changeMode(org.tizen.webuibuilder + * org.tizen.webuibuilder.ui.views.properties.PropertiesTabItem#changeMode + * (org.tizen.webuibuilder * .ui.views.properties.DesignerPropertiesPage.PropertiesMode) */ @Override @@ -1412,11 +1217,13 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener clear(); if (methods == null || methods.isEmpty()) { - if (isAnimatorMode2()) { - resetMethod(); + if (mode.equals(PropertiesMode.DESIGN)) { + createDesignerContents(); + } else if (mode.equals(PropertiesMode.ANIMATOR)) { + createAnimatorContents(); } else { - createStyleContents(); - // refresh(); + Logger logger = LoggerFactory.getLogger(this.getClass()); + logger.error("Invalid properties mode. Mode is " + mode); } } } @@ -1461,8 +1268,8 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener * (non-Javadoc) * * @see - * org.tizen.webuibuilder.model.page.IPageDataListener#pageChanged(org.tizen.webuibuilder.model - * .page.PageDataEvent) + * org.tizen.webuibuilder.model.page.IPageDataListener#pageChanged(org.tizen + * .webuibuilder.model .page.PageDataEvent) */ @Override public void pageChanged(PageDataEvent e) { @@ -1476,8 +1283,8 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener * (non-Javadoc) * * @see - * org.tizen.webuibuilder.model.page.IPageDataListener#pagePreDelete(org.tizen.webuibuilder. - * model.page.PageDataEvent) + * org.tizen.webuibuilder.model.page.IPageDataListener#pagePreDelete(org + * .tizen.webuibuilder. model.page.PageDataEvent) */ @Override public void pagePreDelete(PageDataEvent e) { @@ -1489,8 +1296,8 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener * (non-Javadoc) * * @see - * org.tizen.webuibuilder.model.page.IPageDataListener#pageRenamed(org.tizen.webuibuilder.model - * .page.PageDataEvent) + * org.tizen.webuibuilder.model.page.IPageDataListener#pageRenamed(org.tizen + * .webuibuilder.model .page.PageDataEvent) */ @Override public void pageRenamed(PageDataEvent e) {