diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/select_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/select_disabled.svg
new file mode 100644
index 000000000..b21c206a3
--- /dev/null
+++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/select_disabled.svg
@@ -0,0 +1,5 @@
+
diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/select_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/select_normal.svg
new file mode 100644
index 000000000..60a2855aa
--- /dev/null
+++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/select_normal.svg
@@ -0,0 +1,5 @@
+
diff --git a/designer-base/src/main/resources/com/fr/design/images/sort/sequence.png b/designer-base/src/main/resources/com/fr/design/images/sort/sequence.png
new file mode 100644
index 000000000..ac321ae17
Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/sort/sequence.png differ
diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java
index cdfceb3f4..b4ca61729 100644
--- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java
+++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java
@@ -176,6 +176,7 @@ public abstract class ElementCasePane extends Tar
private CellSelection formatReferencedCell = null;
private CellSelection cellNeedTOFormat = null;
private FormatBrushAction formatBrushAction;
+ private boolean repeatSelection = false;
private ActionListener keyListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
@@ -526,11 +527,17 @@ public abstract class ElementCasePane extends Tar
return this.selection.getQuickEditor(this);
}
+ public boolean isRepeatSelection() {
+ return repeatSelection;
+ }
+
+ public void setRepeatSelection(boolean repeatSelection) {
+ this.repeatSelection = repeatSelection;
+ }
+
@Override
public void setSelection(Selection selection) {
- if (!ComparatorUtils.equals(this.selection, selection)
- || !ComparatorUtils.equals(EastRegionContainerPane.getInstance().getCellAttrPane(), CellElementPropertyPane.getInstance())
- || DesignModeContext.isAuthorityEditing()) {
+ if (isEffectiveSelection(selection)) {
try {
//旧选中内容编辑器释放模板对象
QuickEditor editor = this.selection.getQuickEditorWithoutPopulate(this);
@@ -545,6 +552,12 @@ public abstract class ElementCasePane extends Tar
}
}
+ private boolean isEffectiveSelection(Selection selection) {
+ return (isRepeatSelection() || !ComparatorUtils.equals(this.selection, selection))
+ || !ComparatorUtils.equals(EastRegionContainerPane.getInstance().getCellAttrPane(), CellElementPropertyPane.getInstance())
+ || DesignModeContext.isAuthorityEditing();
+ }
+
public void setOldSelecton(Selection selection) {
this.selection = selection;
diff --git a/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java b/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java
index cc276711a..851b35a8d 100644
--- a/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java
+++ b/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java
@@ -12,8 +12,6 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.selection.SelectionEvent;
import com.fr.design.selection.SelectionListener;
-import com.fr.design.ui.util.UIUtil;
-import com.fr.general.Background;
import com.fr.grid.selection.CellSelection;
import com.fr.grid.selection.Selection;
import com.fr.log.FineLoggerFactory;
@@ -30,8 +28,6 @@ import com.fr.stable.StringUtils;
import javax.swing.*;
import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
@@ -50,6 +46,9 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
private CellSelection oldSelection;
private SelectionListener gridSelectionChangeListener;
UIObserverListener uiObserverListener;
+ private final static Icon DISABLED_ICON = IconUtils.readIcon("/com/fr/design/images/buttonicon/select_disabled.svg");
+ private final static Icon ENABLE_ICON = IconUtils.readIcon("/com/fr/design/images/buttonicon/select_normal.svg");
+ private boolean enabled;
public SortColumnRowPane(int paneWidth, int paneHeight) {
this.paneWidth = paneWidth;
@@ -91,12 +90,17 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
}
void initSelectButton() {
- selectButton = new UIButton(IconUtils.readIcon("/com/fr/design/images/buttonicon/select.png"));
+ selectButton = new UIButton(ENABLE_ICON);
selectButton.addMouseListener(new SelectActionListener(this));
this.add(selectButton);
}
public void populateBean(ColumnRow columnRow) {
+ populateBean(columnRow, true);
+ }
+
+ public void populateBean(ColumnRow columnRow, boolean enabled) {
+ this.enabled = enabled;
if (SortColumnRowPane.isAvailableColumnRow(columnRow)) {
colJTextField.setText(EssentialUtils.convertIntToABC(columnRow.column + 1));
rowJTextField.setText(String.valueOf(columnRow.row + 1));
@@ -104,6 +108,11 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
colJTextField.setText(StringUtils.EMPTY);
rowJTextField.setText(StringUtils.EMPTY);
}
+ if (enabled) {
+ selectButton.setIcon(ENABLE_ICON);
+ } else {
+ selectButton.setIcon(DISABLED_ICON);
+ }
refresh();
}
@@ -141,25 +150,28 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
@Override
public void mouseClicked(MouseEvent e) {
- ElementCasePane elementCasePane = getCurrentElementCase();
- if (elementCasePane == null || isAlreadyAddListener) {
- return;
- }
- prepareSelectHeader(elementCasePane);
- gridSelectionChangeListener = new SelectionListener() {
- @Override
- public void selectionChanged(SelectionEvent e) {
- completeSelectHeader(elementCasePane);
+ if (enabled) {
+ ElementCasePane elementCasePane = getCurrentElementCase();
+ if (elementCasePane == null || isAlreadyAddListener) {
+ return;
}
- };
- elementCasePane.addSelectionChangeListener(gridSelectionChangeListener);
- isAlreadyAddListener = true;
+ prepareSelectHeader(elementCasePane);
+ gridSelectionChangeListener = new SelectionListener() {
+ @Override
+ public void selectionChanged(SelectionEvent e) {
+ completeSelectHeader(elementCasePane);
+ }
+ };
+ elementCasePane.addSelectionChangeListener(gridSelectionChangeListener);
+ isAlreadyAddListener = true;
+ }
}
private void prepareSelectHeader(ElementCasePane elementCasePane) {
ashDisableHeaderCellsStyle(elementCasePane.getEditingElementCase());
oldSelection = (CellSelection) elementCasePane.getSelection();
elementCasePane.getGrid().setNotShowingTableSelectPane(false);
+ elementCasePane.setRepeatSelection(true);
elementCasePane.setEditable(false);
elementCasePane.repaint(10);
}
@@ -179,6 +191,7 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
elementCasePane.removeSelectionChangeListener(gridSelectionChangeListener);
isAlreadyAddListener = false;
elementCasePane.getGrid().setNotShowingTableSelectPane(true);
+ elementCasePane.setRepeatSelection(false);
elementCasePane.setEditable(true);
elementCasePane.repaint();
}
diff --git a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequenceEditPane.java b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequenceEditPane.java
index a62acc413..c65657836 100644
--- a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequenceEditPane.java
+++ b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequenceEditPane.java
@@ -5,12 +5,15 @@ import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.UIList;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.alphafine.listener.DocumentAdapter;
import com.fr.design.mainframe.dnd.SerializableTransferable;
import com.fr.design.mainframe.share.ui.base.PlaceholderTextArea;
import com.fr.locale.InterProviderFactory;
import com.fr.report.core.sort.sortexpression.CustomSequenceSortExpression;
+import com.fr.stable.StringUtils;
import javax.swing.*;
+import javax.swing.event.DocumentEvent;
import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
@@ -27,6 +30,7 @@ import java.util.List;
public class CustomSequenceEditPane extends BasicPane {
java.util.List customSequence;
+ JSplitPane jSplitPane;
JPanel referenceSequencePanel;
JPanel editSequencePanel;
JTextArea jTextArea;
@@ -40,17 +44,32 @@ public class CustomSequenceEditPane extends BasicPane {
this.setLayout(new BorderLayout());
initReferenceSequencePanel();
initEditSequencePanel();
+ initSplitPane();
+ }
+
+ void initSplitPane() {
+ jSplitPane = new JSplitPane();
+ this.add(jSplitPane);
+ jSplitPane.setOneTouchExpandable(true);
+ jSplitPane.setContinuousLayout(true);
+ jSplitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
+ jSplitPane.setLeftComponent(referenceSequencePanel);
+ jSplitPane.setRightComponent(editSequencePanel);
+ jSplitPane.setDividerSize(10);
+ jSplitPane.setDividerLocation(200);
}
void initReferenceSequencePanel() {
- referenceSequencePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+ referenceSequencePanel = new JPanel();
+ referenceSequencePanel.setLayout(new BoxLayout(referenceSequencePanel, BoxLayout.Y_AXIS));
+ JPanel titlePane = new JPanel(new FlowLayout(FlowLayout.LEFT));
UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Sort_Reference_Sequence"));
- referenceSequencePanel.add(uiLabel);
+ titlePane.add(uiLabel);
+ referenceSequencePanel.add(titlePane);
UIScrollPane uiScrollPane = new UIScrollPane(getReferenceSequenceList());
uiScrollPane.setPreferredSize(new Dimension(200, 300));
referenceSequencePanel.add(uiScrollPane);
- referenceSequencePanel.setPreferredSize(new Dimension(200, 400));
- this.add(referenceSequencePanel, BorderLayout.WEST);
+ referenceSequencePanel.setSize(new Dimension(200, 400));
}
private UIList getReferenceSequenceList() {
@@ -69,18 +88,20 @@ public class CustomSequenceEditPane extends BasicPane {
}
void initEditSequencePanel() {
- editSequencePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+ editSequencePanel = new JPanel();
+ editSequencePanel.setLayout(new BoxLayout(editSequencePanel, BoxLayout.Y_AXIS));
+ JPanel titlePane = new JPanel(new FlowLayout(FlowLayout.LEFT));
UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Sort_Input_Sequence"));
- editSequencePanel.add(uiLabel);
+ titlePane.add(uiLabel);
UILabel uiLabel2 = new UILabel(Toolkit.i18nText("Fine-Design_Sort_Please_Interlace_Sequence_Elements"));
uiLabel2.setForeground(Color.lightGray);
- editSequencePanel.add(uiLabel2);
+ titlePane.add(uiLabel2);
+ editSequencePanel.add(titlePane);
jTextArea = getTextArea();
UIScrollPane uiScrollPane = new UIScrollPane(jTextArea);
uiScrollPane.setPreferredSize(new Dimension(475, 300));
editSequencePanel.add(uiScrollPane);
- this.add(editSequencePanel, BorderLayout.CENTER);
-
+ editSequencePanel.setSize(new Dimension(475, 300));
}
@@ -88,6 +109,12 @@ public class CustomSequenceEditPane extends BasicPane {
PlaceholderTextArea placeholderTextArea = new PlaceholderTextArea(10, 10, getPlaceholderText());
new CustomSequenceEditDropTarget(placeholderTextArea, CustomSequenceSortExpression.getReferenceCustomSequences());
placeholderTextArea.setText(CustomSequenceSortExpression.customSequenceToString(customSequence, "\n"));
+ placeholderTextArea.getDocument().addDocumentListener(new DocumentAdapter() {
+ @Override
+ protected void textChanged(DocumentEvent e) {
+ placeholderTextArea.repaint();
+ }
+ });
return placeholderTextArea;
}
@@ -139,12 +166,15 @@ public class CustomSequenceEditPane extends BasicPane {
DataFlavor[] dataFlavors = transferable.getTransferDataFlavors();
if (dataFlavors.length == 1) {
Integer index = (Integer) transferable.getTransferData(dataFlavors[0]);
- String text = "";
+ JTextArea jTextArea = (JTextArea) dtde.getDropTargetContext().getComponent();
+ String text = jTextArea.getText();
+ if (StringUtils.isNotEmpty(text) && !text.endsWith("\n")) {
+ text += "\n";
+ }
java.util.List customSequence = customSequences.get(index);
for (int i = 0; i < customSequence.size(); i++) {
text += customSequence.get(i) + "\n";
}
- JTextArea jTextArea = (JTextArea) dtde.getDropTargetContext().getComponent();
jTextArea.setText(text);
}
} catch (Exception e) {
diff --git a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java
index 50344f1b6..34fca093b 100644
--- a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java
+++ b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java
@@ -10,8 +10,8 @@ import com.fr.report.core.sort.sortexpression.CustomSequenceSortExpression;
import javax.swing.*;
import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
import java.util.List;
@@ -29,13 +29,15 @@ public class CustomSequencePane extends JPanel {
textField = new UITextField();
textField.setEditable(false);
textField.setPreferredSize(new Dimension(width - 20, AbstractSortPane.PANE_COMPONENT_HEIGHT));
- Icon icon = IconUtils.readIcon("/com/fr/design/images/control/refresh.png");
+ Icon icon = IconUtils.readIcon("/com/fr/design/images/sort/sequence.png");
button = new UIButton(icon);
button.setBackground(Color.RED);
button.setOpaque(false);
button.setCursor(new Cursor(Cursor.HAND_CURSOR));
- button.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
+ button.setPreferredSize(new Dimension(20, AbstractSortPane.PANE_COMPONENT_HEIGHT));
+ MouseAdapter mouseAdapter = new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
CustomSequenceEditPane customSequenceEditPane = new CustomSequenceEditPane(customSequence);
customSequenceEditPane.showWindowWithCustomSize(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
@@ -45,9 +47,9 @@ public class CustomSequencePane extends JPanel {
}
}, new Dimension(700, 400)).setVisible(true);
}
- });
- button.setPreferredSize(new Dimension(20, AbstractSortPane.PANE_COMPONENT_HEIGHT));
-
+ };
+ button.addMouseListener(mouseAdapter);
+ textField.addMouseListener(mouseAdapter);
this.add(textField);
this.add(button);
}
diff --git a/designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java b/designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java
index 31057c724..3e1adbe48 100644
--- a/designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java
+++ b/designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java
@@ -1,10 +1,14 @@
package com.fr.design.sort.header;
+import com.fr.design.designer.TargetComponent;
+import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.sort.common.AbstractSortPane;
import com.fr.design.sort.common.SortColumnRowPane;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.ColumnRow;
import javax.swing.*;
@@ -43,13 +47,31 @@ public class HeaderAreaPane extends JPanel {
}
public void populateBean(ColumnRow columnRow, boolean showHeaderArea) {
- areaJLayeredPane.populateBean(columnRow, showHeaderArea);
+ boolean enabled = true;
+ ElementCasePane elementCasePane = getCurrentElementCase();
+ if (elementCasePane != null) {
+ enabled = elementCasePane.isSelectedOneCell();
+ }
+ areaJLayeredPane.populateBean(columnRow, showHeaderArea, enabled);
}
public ColumnRow updateBean() {
return areaJLayeredPane.updateBean();
}
+ private ElementCasePane getCurrentElementCase() {
+ try {
+ TargetComponent targetComponent
+ = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getCurrentElementCasePane();
+ if (targetComponent instanceof ElementCasePane) {
+ return (ElementCasePane) targetComponent;
+ }
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e, e.getMessage());
+ }
+ return null;
+ }
+
class AreaJLayeredPane extends JPanel {
SortColumnRowPane columnRowPane;
JLayeredPane jLayeredPane;
@@ -75,6 +97,7 @@ public class HeaderAreaPane extends JPanel {
setSortColumnRowPaneShow(uiComboBox.getSelectedIndex() == 1);
}
});
+ uiComboBox.setEnabled(false);
}
void setSortColumnRowPaneShow(boolean show) {
@@ -97,14 +120,15 @@ public class HeaderAreaPane extends JPanel {
this.add(jLayeredPane);
}
- public void populateBean(ColumnRow columnRow, boolean showHeaderArea) {
+ public void populateBean(ColumnRow columnRow, boolean showHeaderArea, boolean enabled) {
if (showHeaderArea) {
uiComboBox.setSelectedIndex(1);
} else {
uiComboBox.setSelectedIndex(0);
}
- columnRowPane.populateBean(columnRow);
+ columnRowPane.populateBean(columnRow, enabled);
setSortColumnRowPaneShow(uiComboBox.getSelectedIndex() == 1);
+ uiComboBox.setEnabled(enabled);
}
public ColumnRow updateBean() {
diff --git a/designer-realize/src/main/java/com/fr/design/sort/header/HeaderSortRulePane.java b/designer-realize/src/main/java/com/fr/design/sort/header/HeaderSortRulePane.java
index 9b1de9477..79f939639 100644
--- a/designer-realize/src/main/java/com/fr/design/sort/header/HeaderSortRulePane.java
+++ b/designer-realize/src/main/java/com/fr/design/sort/header/HeaderSortRulePane.java
@@ -31,6 +31,8 @@ public class HeaderSortRulePane extends JPanel {
private static final String ASC_ICON_TEMPLATE_PATH = "/com/fr/design/images/sort/asc.svg";
private static final String DES_ICON_TEMPLATE_PATH = "/com/fr/design/images/sort/des.svg";
private static final String NOSORT_ICON_TEMPLATE_PATH = "/com/fr/design/images/sort/nosort.svg";
+ private static final double ICON_SCALE = SVGIcon.SYSTEM_SCALE * 1.25;
+ private static final int ICON_LENGTH = (int) Math.ceil(16 * ICON_SCALE);
IconButton ascIconButton;
IconButton desIconButton;
IconButton nosortIconButton;
@@ -63,8 +65,8 @@ public class HeaderSortRulePane extends JPanel {
new Component[]{desUICheckBox = new UICheckBox(SortRule.DES.getDescription()), desIconButton = new IconButton(DES_ICON_TEMPLATE_PATH)},
new Component[]{nosortUICheckBox = new UICheckBox(SortRule.NO_SORT.getDescription()), nosortIconButton = new IconButton(NOSORT_ICON_TEMPLATE_PATH)},
};
- double[] rowSize = {24, 24, 24};
- double[] columnSize = {80, 30};
+ double[] rowSize = {ICON_LENGTH + 10, ICON_LENGTH + 10, ICON_LENGTH + 10};
+ double[] columnSize = {80, ICON_LENGTH + 10};
JPanel sortRuleItem = TableLayoutHelper.createCommonTableLayoutPane(components, rowSize, columnSize, 0);
this.add(sortRuleItem, BorderLayout.CENTER);
initUICheckBoxChange(ascUICheckBox, ascIconButton);
@@ -125,12 +127,12 @@ public class HeaderSortRulePane extends JPanel {
jLayeredPane = new JLayeredPane();
iconLabel = getIconLabel(iconTemplatePath);
borderUiLabel = new UILabel();
- borderUiLabel.setSize(16, 16);
+ borderUiLabel.setSize(ICON_LENGTH, ICON_LENGTH);
borderUiLabel.setOpaque(true);
borderUiLabel.setBackground(Color.WHITE);
- iconLabel.setSize(16, 16);
+ iconLabel.setSize(ICON_LENGTH, ICON_LENGTH);
colorButton = new ColorListPane.ColorButton(Color.CYAN);
- colorButton.setSize(16, 16);
+ colorButton.setSize(ICON_LENGTH, ICON_LENGTH);
colorButton.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
@@ -139,7 +141,7 @@ public class HeaderSortRulePane extends JPanel {
uiObserverListener.doChange();
}
});
- jLayeredPane.setPreferredSize(new Dimension(16, 16));
+ jLayeredPane.setPreferredSize(new Dimension(ICON_LENGTH, ICON_LENGTH));
jLayeredPane.add(iconLabel, JLayeredPane.POPUP_LAYER);
jLayeredPane.add(borderUiLabel, JLayeredPane.MODAL_LAYER);
@@ -152,6 +154,14 @@ public class HeaderSortRulePane extends JPanel {
refreshIconLabel(icon);
}
+ void refreshIconLabel(BufferedImage bufferedImage) {
+ if (bufferedImage != null) {
+ this.bufferedImage = bufferedImage;
+ Icon icon = new SVGIcon(bufferedImage);
+ refreshIconLabel(icon);
+ }
+ }
+
void refreshIconLabel(Icon icon) {
if (icon != null) {
iconLabel.removeAll();
@@ -175,7 +185,7 @@ public class HeaderSortRulePane extends JPanel {
String svgText = originalSvgText.replaceAll("\\{fillColor\\}", shiftColor(color));
InputStream svgInputStream = new ByteArrayInputStream(svgText.getBytes(StandardCharsets.UTF_8));
TranscoderInput input = new TranscoderInput(svgInputStream);
- bufferedImage = SVGTranscoder.createImage(SVGIcon.SYSTEM_SCALE, input).getImage();
+ bufferedImage = SVGTranscoder.createImage(ICON_SCALE, input).getImage();
SVGIcon svgIcon = new SVGIcon(bufferedImage);
return svgIcon;
} catch (Exception e) {
@@ -203,12 +213,11 @@ public class HeaderSortRulePane extends JPanel {
}
String shiftValue(int value) {
- int resultValue = (int) ((((float) value) / 255) * 99);
- if (resultValue < 10) {
- return "0" + resultValue;
- } else {
- return "" + resultValue;
+ String resultValue = Integer.toHexString(value);
+ if (resultValue.length() == 1) {
+ resultValue = "0" + resultValue;
}
+ return resultValue;
}
private String getSvgText(InputStream inputStream) throws Exception {
@@ -237,18 +246,14 @@ public class HeaderSortRulePane extends JPanel {
for (SortHeader.SortItem sortItem : sortItems) {
SortRule sortRule = sortItem.getSortRule();
BufferedImage bufferedImage = sortItem.getBufferedImage();
- Icon icon = null;
- if (bufferedImage != null) {
- icon = new SVGIcon(bufferedImage);
- }
if (sortRule == SortRule.ASC) {
- ascIconButton.refreshIconLabel(icon);
+ ascIconButton.refreshIconLabel(bufferedImage);
ascUICheckBox.setSelected(true);
} else if (sortRule == SortRule.DES) {
- desIconButton.refreshIconLabel(icon);
+ desIconButton.refreshIconLabel(bufferedImage);
desUICheckBox.setSelected(true);
} else if (sortRule == SortRule.NO_SORT) {
- nosortIconButton.refreshIconLabel(icon);
+ nosortIconButton.refreshIconLabel(bufferedImage);
nosortUICheckBox.setSelected(true);
}
diff --git a/designer-realize/src/main/java/com/fr/design/sort/header/SortHeaderPane.java b/designer-realize/src/main/java/com/fr/design/sort/header/SortHeaderPane.java
index 0235a10fb..b79065e33 100644
--- a/designer-realize/src/main/java/com/fr/design/sort/header/SortHeaderPane.java
+++ b/designer-realize/src/main/java/com/fr/design/sort/header/SortHeaderPane.java
@@ -35,15 +35,17 @@ public class SortHeaderPane extends JPanel {
public void populateBean(SortHeader sortHeader, String defaultHeaderArea) {
this.sortHeader = sortHeader;
boolean showHeaderArea = false;
- ColumnRow columnRow = null;
SortHeader.SortItem[] sortItems = null;
String headerArea = defaultHeaderArea;
+ ColumnRow columnRow = ColumnRow.valueOf(headerArea);
if (sortHeader != null) {
headerArea = sortHeader.getHeaderArea();
sortItems = sortHeader.getSortItems();
showHeaderArea = SortColumnRowPane.isAvailableColumnRow(ColumnRow.valueOf(headerArea));
+ if (showHeaderArea) {
+ columnRow = ColumnRow.valueOf(headerArea);
+ }
}
- columnRow = ColumnRow.valueOf(headerArea);
headerAreaPane.populateBean(columnRow, showHeaderArea);
headerSettingPane.populateBean(sortItems);
}