Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2016-11-08 15:09:26 +0000
committerPierre-Charles David2016-11-28 19:39:32 +0000
commit8b24106ccbd3276dba0670002ff05d0e32b737a2 (patch)
tree8a994adf68b41cb96ff3581e96ae30afd27d37f5
parent33e8ad5257805d6836d72faa1f7665967a652363 (diff)
downloadorg.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>
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/plugin.properties4
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/api/preferences/SiriusPropertiesViewPreferencesKeys.java7
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/EditSupportSpec.java13
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/Messages.java6
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewGeneralPreferencePage.java13
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/preferences/SiriusPropertiesViewPreferenceInitializer.java2
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);
}
}

Back to the top