diff options
| author | Pierre-Charles David | 2017-02-20 16:44:22 +0000 |
|---|---|---|
| committer | Joao Barata | 2017-07-11 09:34:53 +0000 |
| commit | 423cc487a7b805a6125681379095789121e0f5c6 (patch) | |
| tree | 9f626685ce750f77f8f13cce4eb38912bc490475 | |
| parent | b4052069c5622f976cf70dc0ffc754d32fb22a64 (diff) | |
| download | org.eclipse.amalgam-423cc487a7b805a6125681379095789121e0f5c6.tar.gz org.eclipse.amalgam-423cc487a7b805a6125681379095789121e0f5c6.tar.xz org.eclipse.amalgam-423cc487a7b805a6125681379095789121e0f5c6.zip | |
[509735] Extract section configuration into separate class
Bug: 509735
Change-Id: Ic8b7f413dda5013e1e409205cec633898b971246
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
2 files changed, 163 insertions, 87 deletions
diff --git a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/configuration/SectionConfiguration.java b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/configuration/SectionConfiguration.java new file mode 100644 index 00000000..7b3442d8 --- /dev/null +++ b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/configuration/SectionConfiguration.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright (c) 2017 THALES GLOBAL SERVICES. + * All rights reserved. This program and the accompanying materials + * are 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: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.amalgam.explorer.activity.ui.api.configuration; + +import java.util.TreeSet; + +import org.eclipse.amalgam.explorer.activity.ui.api.editor.activities.ExplorerActivity; + +/** + * Represents the configuration of a section in a page. + * + * @author pcdavid + */ +public class SectionConfiguration { + private String id; + + private String name; + + private int index; + + private boolean isExpanded; + + private boolean isFiltering; + + private String description; + + public TreeSet<ExplorerActivity> activities; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public boolean isExpanded() { + return isExpanded; + } + + public void setExpanded(boolean isExpanded) { + this.isExpanded = isExpanded; + } + + public boolean isFiltering() { + return isFiltering; + } + + public void setFiltering(boolean isFiltering) { + this.isFiltering = isFiltering; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/sections/ActivityExplorerSection.java b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/sections/ActivityExplorerSection.java index 92369e67..c0138028 100644 --- a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/sections/ActivityExplorerSection.java +++ b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/sections/ActivityExplorerSection.java @@ -19,6 +19,7 @@ import java.util.TreeSet; import java.util.regex.Pattern; import org.eclipse.amalgam.explorer.activity.ui.ActivityExplorerActivator; +import org.eclipse.amalgam.explorer.activity.ui.api.configuration.SectionConfiguration; import org.eclipse.amalgam.explorer.activity.ui.api.editor.activities.ExplorerActivity; import org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.helper.FormHelper; import org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.helper.HTMLHelper; @@ -46,34 +47,70 @@ import org.eclipse.ui.forms.widgets.Section; * */ public class ActivityExplorerSection implements IVisibility, IOrdered, IPropertyChangeListener { - + private SectionConfiguration config; private static final Pattern P_PATTERN = Pattern.compile("<p>.*</p>"); //$NON-NLS-1$ - - /** - * Constructor. - * - * @param contributor - */ - public ActivityExplorerSection(IConfigurationElement contributor) { - this.id = ActivityExplorerExtensionManager.getId(contributor); - this.name = ActivityExplorerExtensionManager.getName(contributor); - this.isExpanded = ActivityExplorerExtensionManager.getIsExpanded(contributor); - String desc = ActivityExplorerExtensionManager.getDescription(contributor); - if (null != desc){ - boolean isInParagraph = P_PATTERN.matcher(desc).find(); - this.description = isInParagraph ? HTMLHelper.formWrapper2(desc) : HTMLHelper.formWrapper(desc); - } - String indice = ActivityExplorerExtensionManager.getIndex(contributor); - try { - this.index = Integer.parseInt(indice); + private IAction[] toolbarActions; + private Section widget; + private FormToolkit toolkit; + private Composite activityContainer; + private IFormPage page; + + + private static SectionConfiguration parseConfiguration(IConfigurationElement contributor) { + SectionConfiguration sectionDescription = new SectionConfiguration(); + sectionDescription.setId(ActivityExplorerExtensionManager.getId(contributor)); + sectionDescription.setName(ActivityExplorerExtensionManager.getName(contributor)); + sectionDescription.setExpanded(ActivityExplorerExtensionManager.getIsExpanded(contributor)); + String desc = ActivityExplorerExtensionManager.getDescription(contributor); + if (null != desc) { + boolean isInParagraph = P_PATTERN.matcher(desc).find(); + sectionDescription.setDescription(isInParagraph ? HTMLHelper.formWrapper2(desc) : HTMLHelper.formWrapper(desc)); + } + String indice = ActivityExplorerExtensionManager.getIndex(contributor); + try { + sectionDescription.setIndex(Integer.parseInt(indice)); } catch (NumberFormatException e) { - throw new IllegalArgumentException(MessageFormat.format("Attribute ''{0}'' of section {1} must be an int, but was ''{2}''", ActivityExplorerExtensionManager.ATT_INDEX, ActivityExplorerExtensionManager.getId(contributor), indice)); + throw new IllegalArgumentException(MessageFormat.format("Attribute ''{0}'' of section {1} must be an int, but was ''{2}''", ActivityExplorerExtensionManager.ATT_INDEX, + ActivityExplorerExtensionManager.getId(contributor), indice)); } - this.isFiltering = ActivityExplorerExtensionManager.getIsFiltering(contributor); - createActivities(contributor); - - } - + sectionDescription.setFiltering(ActivityExplorerExtensionManager.getIsFiltering(contributor)); + createActivities(contributor, sectionDescription); + return sectionDescription; + } + + /** + * Create theirs Activities. + * + * @param contributor + */ + private static void createActivities(IConfigurationElement contributor, SectionConfiguration sectionDescription) { + sectionDescription.activities = new TreeSet<ExplorerActivity>(); + List<IConfigurationElement> activities = ActivityExplorerExtensionManager.getActivities(contributor); + for (IConfigurationElement element : activities) { + try { + sectionDescription.activities.add(new ExplorerActivity(element)); + } catch (NumberFormatException e){ + StringBuilder message = new StringBuilder(); + message.append("ActivityExplorerSection.createActivities(...) _ "); //$NON-NLS-1$ + message.append("The Activity contribution "); //$NON-NLS-1$ + message.append(ActivityExplorerExtensionManager.getId(contributor)); + message.append(" has wrong index format ("); //$NON-NLS-1$ + message.append(ActivityExplorerExtensionManager.getIndex(contributor)); + message.append("). Only integers are valid"); //$NON-NLS-1$ + ActivityExplorerLoggerService.getInstance().log(IStatus.ERROR, message.toString(), e); + } + } + } + + /** + * Constructor. + * + * @param contributor + */ + public ActivityExplorerSection(IConfigurationElement contributor) { + this.config = parseConfiguration(contributor); + } + /** * Constructor. * @@ -84,48 +121,15 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty * @param description * @param activities */ - public ActivityExplorerSection(String id, String name, int index, boolean isExpanded, boolean isFiltering, String description, List<ExplorerActivity> activities) { - super(); - this.id = id; - this.name = name; - this.index = index; - this.isExpanded = isExpanded; - this.isFiltering = isFiltering; - this.activities.addAll(activities); - } - - private TreeSet<ExplorerActivity> activities; - - /** - * Create theirs Activities. - * - * @param contributor - */ - - private void createActivities(IConfigurationElement contributor) { - - activities = new TreeSet<ExplorerActivity>(); - - List<IConfigurationElement> activities = ActivityExplorerExtensionManager.getActivities(contributor); - for (IConfigurationElement element : activities) { - try { - this.activities.add(new ExplorerActivity(element)); - } catch (NumberFormatException e){ - - StringBuilder message = new StringBuilder(); - message.append("ActivityExplorerSection.createActivities(...) _ "); //$NON-NLS-1$ - message.append("The Activity contribution "); //$NON-NLS-1$ - message.append(ActivityExplorerExtensionManager.getId(contributor)); - message.append(" has wrong index format ("); //$NON-NLS-1$ - message.append(ActivityExplorerExtensionManager.getIndex(contributor)); - message.append("). Only integers are valid"); //$NON-NLS-1$ - - ActivityExplorerLoggerService.getInstance().log(IStatus.ERROR, message.toString(), e); - - } - } + this.config = new SectionConfiguration(); + this.config.setId(id); + this.config.setName(name); + this.config.setIndex(index); + this.config.setExpanded(isExpanded); + this.config.setFiltering(isFiltering); + this.config.activities.addAll(activities); } /** @@ -135,7 +139,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty */ public Set<ExplorerActivity> getActivities() { - return activities; + return this.config.activities; } /** @@ -163,7 +167,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty */ public void setActivities(TreeSet<ExplorerActivity> activities) { - this.activities = activities; + this.config.activities = activities; } /** @@ -173,7 +177,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty */ public String getId() { - return id; + return this.config.getId(); } /** @@ -183,17 +187,9 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty */ public String getName() { - return name; + return this.config.getName(); } - private String id; - private String name; - private int index; - private boolean isExpanded; - private boolean isFiltering; - private String description; - private IAction[] toolbarActions; - private Section widget; /** * Return true if the section is defined as expanded. @@ -201,7 +197,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty * @return */ public boolean isExpanded() { - return isExpanded; + return this.config.isExpanded(); } /** @@ -210,7 +206,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty * @return */ public boolean isFiltering() { - return isFiltering; + return this.config.isFiltering(); } /** @@ -219,7 +215,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty * @return */ public String getDescription() { - return description; + return this.config.getDescription(); } /** @@ -236,7 +232,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty */ public int getPosition() { - return index; + return this.config.getIndex(); } /** @@ -244,14 +240,10 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty */ public void setPosition(int index) { - this.index = index; + this.config.setIndex(index); } - private FormToolkit toolkit; - private Composite activityContainer; - private IFormPage page; - /** * Initialize the DashBaord Section * @@ -264,7 +256,7 @@ public class ActivityExplorerSection implements IVisibility, IOrdered, IProperty this.page = page; toolkit = managedForm.getToolkit(); Couple<Section, Composite> section = FormHelper.createTwistieSectionWithToolbar(sectionContainer, - managedForm, getName(), null, isExpanded, Arrays.asList(getToolBarActions())); + managedForm, getName(), null, this.config.isExpanded(), Arrays.asList(getToolBarActions())); widget = (Section) section.getKey(); |
