diff options
| author | Pierre-Charles David | 2016-11-08 15:09:26 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-11-28 19:39:32 +0000 |
| commit | 8b24106ccbd3276dba0670002ff05d0e32b737a2 (patch) | |
| tree | 8a994adf68b41cb96ff3581e96ae30afd27d37f5 | |
| parent | 33e8ad5257805d6836d72faa1f7665967a652363 (diff) | |
| download | org.eclipse.sirius-8b24106ccbd3276dba0670002ff05d0e32b737a2.tar.gz org.eclipse.sirius-8b24106ccbd3276dba0670002ff05d0e32b737a2.tar.xz org.eclipse.sirius-8b24106ccbd3276dba0670002ff05d0e32b737a2.zip | |
[507180] Limit the max length of tabs in default rules
Limit to 20 characters by default; configurable by a preference.
Bug: 507180
Change-Id: Iaa1f62874be4c8bb344253d32d9d578148d6cac4
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Signed-off-by: Mélanie Bats <melanie.bats@obeo.fr>
6 files changed, 42 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.ui.properties/plugin.properties b/plugins/org.eclipse.sirius.ui.properties/plugin.properties index 60c85f736c..6207c6066a 100644 --- a/plugins/org.eclipse.sirius.ui.properties/plugin.properties +++ b/plugins/org.eclipse.sirius.ui.properties/plugin.properties @@ -34,4 +34,6 @@ SiriusToolServices_MainTabLabel=Main preference.page.title.org.eclipse.sirius.ui.properties.general=Sirius Properties View SiriusPropertiesPreferencePage_filterGroup= Legacy Tabs SiriusPropertiesPreferencePage_semanticTab= Show Semantic Tab -SiriusPropertiesPreferencePage_defaultTab= Show Default Tab
\ No newline at end of file +SiriusPropertiesPreferencePage_defaultTab= Show Default Tab +SiriusPropertiesPreferencePage_tabGroup= Sirius Tabs +SiriusPropertiesPreferencePage_maxLengthTabName= Maximum size of tabs name (in characters)
\ No newline at end of file diff --git a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/api/preferences/SiriusPropertiesViewPreferencesKeys.java b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/api/preferences/SiriusPropertiesViewPreferencesKeys.java index 1e92508aec..d6bf0d2a9e 100644 --- a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/api/preferences/SiriusPropertiesViewPreferencesKeys.java +++ b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/api/preferences/SiriusPropertiesViewPreferencesKeys.java @@ -25,7 +25,12 @@ public enum SiriusPropertiesViewPreferencesKeys { /** * Says if the default tab should be automatically filtered or not. */ - PREF_FILTER_PROPERTIES_VIEW_DEFAULT_TAB(boolean.class); + PREF_FILTER_PROPERTIES_VIEW_DEFAULT_TAB(boolean.class), + + /** + * Says which is the max length of a tab name. + */ + PREF_MAX_LENGTH_TAB_NAME(int.class); /** The type of the preference. */ private final Class<?> type; diff --git a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/EditSupportSpec.java b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/EditSupportSpec.java index 62548f4068..6982ff3f67 100644 --- a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/EditSupportSpec.java +++ b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/EditSupportSpec.java @@ -21,6 +21,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.sirius.ext.base.Option; import org.eclipse.sirius.ext.emf.edit.EditingDomainServices; import org.eclipse.sirius.properties.impl.EditSupportImpl; +import org.eclipse.sirius.ui.properties.api.preferences.SiriusPropertiesViewPreferencesKeys; /** * Contains the actual implementation of the EditSupport EOperations. @@ -28,6 +29,7 @@ import org.eclipse.sirius.properties.impl.EditSupportImpl; * @author pcdavid */ public class EditSupportSpec extends EditSupportImpl { + private static final String JAVA_LANG_STRING = "java.lang.String"; //$NON-NLS-1$ private static final String INT = "int"; //$NON-NLS-1$ @@ -146,7 +148,16 @@ public class EditSupportSpec extends EditSupportImpl { } else { result = String.valueOf(target); } - return result; + return elide(result, SiriusUIPropertiesPlugin.getPlugin().getPreferenceStore().getInt(SiriusPropertiesViewPreferencesKeys.PREF_MAX_LENGTH_TAB_NAME.name())); + } + + private String elide(String s, int maxLength) { + final String dots = "..."; //$NON-NLS-1$ + if (dots.length() <= maxLength && maxLength < s.length()) { + return s.substring(0, maxLength - dots.length()) + dots; + } else { + return s; + } } @Override diff --git a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/Messages.java b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/Messages.java index c04f81de36..5d86a2e4fd 100644 --- a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/Messages.java +++ b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/Messages.java @@ -34,6 +34,12 @@ public final class Messages { @TranslatableMessage public static String SiriusPropertiesPreferencePage_defaultTab; + + @TranslatableMessage + public static String SiriusPropertiesPreferencePage_tabGroup; + + @TranslatableMessage + public static String SiriusPropertiesPreferencePage_maxLengthTabName; // CHECKSTYLE:ON diff --git a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewGeneralPreferencePage.java b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewGeneralPreferencePage.java index d2ef819a13..2338c55b15 100644 --- a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewGeneralPreferencePage.java +++ b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewGeneralPreferencePage.java @@ -12,6 +12,7 @@ package org.eclipse.sirius.ui.properties.internal.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.sirius.ui.properties.api.preferences.SiriusPropertiesViewPreferencesKeys; import org.eclipse.sirius.ui.properties.internal.SiriusUIPropertiesPlugin; import org.eclipse.swt.SWT; @@ -33,6 +34,8 @@ public class SiriusPropertiesViewGeneralPreferencePage extends FieldEditorPrefer private BooleanFieldEditor filterDefaultTab; + private IntegerFieldEditor maxTabNameLength; + @Override protected void createFieldEditors() { setPreferenceStore(SiriusUIPropertiesPlugin.getPlugin().getPreferenceStore()); @@ -45,6 +48,8 @@ public class SiriusPropertiesViewGeneralPreferencePage extends FieldEditorPrefer addFilterFields(parent); + addTabFields(parent); + } private void addFilterFields(Composite parent) { @@ -59,6 +64,14 @@ public class SiriusPropertiesViewGeneralPreferencePage extends FieldEditorPrefer addField(filterDefaultTab); } + private void addTabFields(Composite parent) { + Composite refreshComposite = createGroup(parent, Messages.SiriusPropertiesPreferencePage_tabGroup); + + maxTabNameLength = new IntegerFieldEditor(SiriusPropertiesViewPreferencesKeys.PREF_MAX_LENGTH_TAB_NAME.name(), Messages.SiriusPropertiesPreferencePage_maxLengthTabName, + new Composite(refreshComposite, SWT.NONE)); + addField(maxTabNameLength); + } + private Group createGroup(Composite parent, String text) { Group group = new Group(parent, SWT.NONE); GridLayout gridLayout = new GridLayout(1, false); diff --git a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewPreferenceInitializer.java b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewPreferenceInitializer.java index 2d09e11be0..9b019b1f68 100644 --- a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewPreferenceInitializer.java +++ b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewPreferenceInitializer.java @@ -33,5 +33,7 @@ public class SiriusPropertiesViewPreferenceInitializer extends AbstractPreferenc // By default the Semantic and Default tabs are visible preferenceStore.setDefault(SiriusPropertiesViewPreferencesKeys.PREF_FILTER_PROPERTIES_VIEW_DEFAULT_TAB.name(), true); preferenceStore.setDefault(SiriusPropertiesViewPreferencesKeys.PREF_FILTER_PROPERTIES_VIEW_SEMANTIC_TAB.name(), true); + // By default the max tab name length is 20 + preferenceStore.setDefault(SiriusPropertiesViewPreferencesKeys.PREF_MAX_LENGTH_TAB_NAME.name(), 20); } } |
