From dc847b1ddc4e4635658cf2ebf04404e743e55547 Mon Sep 17 00:00:00 2001 From: Henning von Bargen Date: Tue, 11 Apr 2023 16:14:30 +0200 Subject: [PATCH] Change the default value for overflow to visible as CSS specs say and allow specifying overflow in the style editor. --- .../report/designer/nls/messages.properties | 1 + .../ui/dialogs/GeneralPreferencePage.java | 46 ++++++++++++++++++ .../css/engine/value/css/OverflowManager.java | 2 +- .../birt/report/model/elements/rom.def | 48 +++++++++---------- 4 files changed, 72 insertions(+), 25 deletions(-) diff --git a/UI/org.eclipse.birt.report.designer.core/src/org/eclipse/birt/report/designer/nls/messages.properties b/UI/org.eclipse.birt.report.designer.core/src/org/eclipse/birt/report/designer/nls/messages.properties index 171d0848842..983c5cb9a90 100644 --- a/UI/org.eclipse.birt.report.designer.core/src/org/eclipse/birt/report/designer/nls/messages.properties +++ b/UI/org.eclipse.birt.report.designer.core/src/org/eclipse/birt/report/designer/nls/messages.properties @@ -1419,6 +1419,7 @@ Element.Style.margin.left=L&eft: Element.Style.margin.right=R&ight: Element.Style.margin.top=To&p: Element.Style.masterPage=Master &Page: +Element.Style.overflow=Overflow: Element.Style.orphans=&Orphans: Element.Style.padding.bottom=&Bottom: Element.Style.padding.left=&Left: diff --git a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/dialogs/GeneralPreferencePage.java b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/dialogs/GeneralPreferencePage.java index d919cc6f44c..fd84a6cced3 100644 --- a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/dialogs/GeneralPreferencePage.java +++ b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/dialogs/GeneralPreferencePage.java @@ -15,6 +15,7 @@ package org.eclipse.birt.report.designer.internal.ui.dialogs; import java.util.Arrays; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -27,6 +28,8 @@ import org.eclipse.birt.report.model.api.ReportItemThemeHandle; import org.eclipse.birt.report.model.api.SharedStyleHandle; import org.eclipse.birt.report.model.api.StyleHandle; +import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants; +import org.eclipse.birt.report.model.api.metadata.IChoice; import org.eclipse.birt.report.model.api.metadata.IPredefinedStyle; import org.eclipse.birt.report.model.metadata.MetaDataDictionary; import org.eclipse.jface.preference.IPreferenceStore; @@ -118,6 +121,13 @@ protected void createFieldEditors() { .getPropertyHandle(StyleHandle.SHOW_IF_BLANK_PROP).getDefn().getDisplayNameID()), getFieldEditorParent()); addField(blank); + + ComboBoxFieldEditor overflow = new ComboBoxFieldEditor( + StyleHandle.OVERFLOW_PROP, Messages.getString(((StyleHandle) model) + .getPropertyHandle(StyleHandle.OVERFLOW_PROP).getDefn().getDisplayNameID()), + getChoiceArray(DesignChoiceConstants.CHOICE_OVERFLOW), getFieldEditorParent()); + addField(overflow); + UIUtil.bindHelp(getFieldEditorParent().getParent(), IHelpContextIds.STYLE_BUILDER_GERNERAL_ID); Label note = new Label(getFieldEditorParent(), SWT.NONE); @@ -429,4 +439,40 @@ public void setVisible(boolean visible) { protected String[] getPreferenceNames() { return new String[] { StyleHandle.CAN_SHRINK_PROP, StyleHandle.SHOW_IF_BLANK_PROP, }; } + + /** + * Gets choice array of the given property name ( key ). + * + * @param key The given property name. + * @return String[][]: The choice array of the key, which contains he names + * (labels) and underlying values, will be arranged as: { {name1, + * value1}, {name2, value2}, ...} + */ + private String[][] getChoiceArray(String key) { + return getChoiceArray(key, null); + } + + /** + * Gets choice array of the given property name ( key ). + * + * @param key The given property name. + * @return String[][]: The choice array of the key, which contains he names + * (labels) and underlying values, will be arranged as: { {name1, + * value1}, {name2, value2}, ...} + */ + private String[][] getChoiceArray(String key, Comparator comparator) { + IChoice[] choices = DEUtil.getMetaDataDictionary().getChoiceSet(key).getChoices(comparator); + + String[][] names = null; + if (choices.length > 0) { + names = new String[choices.length][2]; + for (int i = 0; i < choices.length; i++) { + names[i][0] = choices[i].getDisplayName(); + names[i][1] = choices[i].getName(); + } + } + return names; + } + } + diff --git a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/css/engine/value/css/OverflowManager.java b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/css/engine/value/css/OverflowManager.java index df478f3061f..a09dbb748da 100644 --- a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/css/engine/value/css/OverflowManager.java +++ b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/css/engine/value/css/OverflowManager.java @@ -52,6 +52,6 @@ public boolean isInheritedProperty() { @Override public Value getDefaultValue() { - return CSSValueConstants.OVERFLOW_HIDDEN_VALUE; + return CSSValueConstants.OVERFLOW_VISIBLE_VALUE; } } diff --git a/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/elements/rom.def b/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/elements/rom.def index ccf4f4d715f..969ab73a6e7 100644 --- a/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/elements/rom.def +++ b/model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/elements/rom.def @@ -2441,7 +2441,7 @@ - hidden + visible @@ -3972,29 +3972,29 @@