Browse Source
* commit '908769c762731b829990242ca611adf2856e11f4': 代码修改 REPORT-35149 预定义样式优化及与图表统一research/11.0
Bjorn
4 years ago
31 changed files with 520 additions and 446 deletions
@ -0,0 +1,225 @@
|
||||
package com.fr.design.mainframe.predefined.ui.detail; |
||||
|
||||
import com.fr.base.BaseUtils; |
||||
import com.fr.base.Style; |
||||
import com.fr.config.predefined.PredefinedCellStyle; |
||||
import com.fr.config.predefined.PredefinedCellStyleConfig; |
||||
import com.fr.design.actions.UpdateAction; |
||||
import com.fr.design.beans.BasicBeanPane; |
||||
import com.fr.design.dialog.FineJOptionPane; |
||||
import com.fr.design.gui.NameInspector; |
||||
import com.fr.design.gui.controlpane.JListControlPane; |
||||
import com.fr.design.gui.controlpane.NameObjectCreator; |
||||
import com.fr.design.gui.controlpane.NameableCreator; |
||||
import com.fr.design.gui.controlpane.ShortCut4JControlPane; |
||||
import com.fr.design.gui.controlpane.UnrepeatedNameHelper; |
||||
import com.fr.design.gui.ilist.ListModelElement; |
||||
import com.fr.design.gui.ilist.ModNameActionListener; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.design.layout.FRGUIPaneFactory; |
||||
import com.fr.design.mainframe.predefined.ui.detail.cell.CustomPredefinedStylePane; |
||||
import com.fr.design.menu.ShortCut; |
||||
import com.fr.general.ComparatorUtils; |
||||
import com.fr.general.NameObject; |
||||
import com.fr.log.FineLoggerFactory; |
||||
import com.fr.stable.Nameable; |
||||
import com.fr.stable.StringUtils; |
||||
|
||||
import javax.swing.BorderFactory; |
||||
import javax.swing.JOptionPane; |
||||
import javax.swing.JPanel; |
||||
import javax.swing.JSeparator; |
||||
import javax.swing.SwingConstants; |
||||
import javax.swing.SwingUtilities; |
||||
import java.awt.BorderLayout; |
||||
import java.awt.Dimension; |
||||
import java.awt.event.ActionEvent; |
||||
import java.lang.reflect.Constructor; |
||||
import java.lang.reflect.InvocationTargetException; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.Iterator; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Created by kerry on 2020-09-27 |
||||
*/ |
||||
public class CellStyleListControlPane extends JListControlPane { |
||||
private boolean namePermitted = true; |
||||
|
||||
public CellStyleListControlPane() { |
||||
super(); |
||||
this.addModNameActionListener(new ModNameActionListener() { |
||||
public void nameModed(int index, String oldName, String newName) { |
||||
if (ComparatorUtils.equals(oldName, newName) || ComparatorUtils.equals(newName, NameInspector.ILLEGAL_NAME_HOLDER)) { |
||||
return; |
||||
} |
||||
namePermitted = true; |
||||
String[] allNames = nameableList.getAllNames(); |
||||
allNames[index] = StringUtils.EMPTY; |
||||
if (StringUtils.isEmpty(newName)) { |
||||
showTipDialogAndReset(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Empty_Name"), index); |
||||
return; |
||||
} |
||||
if (isNameRepeated(new List[]{Arrays.asList(allNames)}, newName)) { |
||||
showTipDialogAndReset(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Duplicate_Name", newName), index); |
||||
return; |
||||
} |
||||
populateSelectedValue(); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
private void showTipDialogAndReset(String content, int index) { |
||||
nameableList.stopEditing(); |
||||
|
||||
FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(CellStyleListControlPane.this), |
||||
content, |
||||
Toolkit.i18nText("Fine-Design_Basic_Alert"), |
||||
JOptionPane.WARNING_MESSAGE); |
||||
setIllegalIndex(index); |
||||
namePermitted = false; |
||||
} |
||||
|
||||
@Override |
||||
public NameableCreator[] createNameableCreators() { |
||||
return new NameableCreator[]{new CellStyleNameObjectCreator(Toolkit.i18nText("Fine-Design_Predefined_Cell_New_Style"), |
||||
PredefinedCellStyle.class, CustomPredefinedStylePane.class)}; |
||||
} |
||||
|
||||
@Override |
||||
protected String title4PopupWindow() { |
||||
return StringUtils.EMPTY; |
||||
} |
||||
|
||||
protected void initComponentPane() { |
||||
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
||||
this.setCreators(this.createNameableCreators()); |
||||
initCardPane(); |
||||
JPanel leftPane = getLeftPane(); |
||||
JSeparator jSeparator = new JSeparator(SwingConstants.VERTICAL); |
||||
leftPane.setPreferredSize(new Dimension(70, 0)); |
||||
jSeparator.setPreferredSize(new Dimension(2, 0)); |
||||
cardPane.setPreferredSize(new Dimension(238, 0)); |
||||
cardPane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0)); |
||||
JPanel mainSplitPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); |
||||
mainSplitPane.add(leftPane, BorderLayout.WEST); |
||||
mainSplitPane.add(jSeparator, BorderLayout.CENTER); |
||||
mainSplitPane.add(cardPane, BorderLayout.EAST); |
||||
|
||||
this.add(mainSplitPane, BorderLayout.CENTER); |
||||
this.checkButtonEnabled(); |
||||
} |
||||
|
||||
protected ShortCut4JControlPane[] createShortcuts() { |
||||
return new ShortCut4JControlPane[]{ |
||||
shortCutFactory.addItemShortCut(), |
||||
new RemoveItemShortCut4JControlPane(new RemoveItemAction()) |
||||
}; |
||||
} |
||||
|
||||
|
||||
public class RemoveItemShortCut4JControlPane extends ShortCut4JControlPane { |
||||
RemoveItemShortCut4JControlPane(ShortCut shortCut) { |
||||
this.shortCut = shortCut; |
||||
} |
||||
|
||||
@Override |
||||
public void checkEnable() { |
||||
ListModelElement selectModel = CellStyleListControlPane.this.getSelectedValue(); |
||||
if (selectModel != null) { |
||||
NameObject selectNameObject = (NameObject) selectModel.wrapper; |
||||
PredefinedCellStyle cellStyle = (PredefinedCellStyle) (selectNameObject.getObject()); |
||||
this.shortCut.setEnabled(!cellStyle.isBuiltIn() && !cellStyle.isDefaultStyle()); |
||||
} else { |
||||
this.shortCut.setEnabled(false); |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
|
||||
private class RemoveItemAction extends UpdateAction { |
||||
RemoveItemAction() { |
||||
this.setName(com.fr.design.i18n.Toolkit.i18nText(("Fine-Design_Basic_Action_Remove"))); |
||||
this.setMnemonic('R'); |
||||
this.setSmallIcon(BaseUtils |
||||
.readIcon("/com/fr/base/images/cell/control/remove.png")); |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent evt) { |
||||
CellStyleListControlPane.this.onRemoveItem(); |
||||
} |
||||
} |
||||
|
||||
|
||||
class CellStyleNameObjectCreator extends NameObjectCreator { |
||||
public CellStyleNameObjectCreator(String menuName, Class clazz, Class<? extends BasicBeanPane> updatePane) { |
||||
super(menuName, clazz, updatePane); |
||||
} |
||||
|
||||
public Nameable createNameable(UnrepeatedNameHelper helper) { |
||||
Constructor<? extends PredefinedCellStyle> constructor = null; |
||||
try { |
||||
constructor = clazzOfInitCase.getConstructor(); |
||||
PredefinedCellStyle cellStyle = constructor.newInstance(); |
||||
|
||||
cellStyle.setName(menuName); |
||||
cellStyle.setStyle(Style.getInstance()); |
||||
return new NameObject(helper.createUnrepeatedName(this.menuName()), cellStyle); |
||||
|
||||
} catch (NoSuchMethodException e) { |
||||
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
||||
} catch (IllegalAccessException e) { |
||||
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
||||
} catch (InstantiationException e) { |
||||
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
||||
} catch (InvocationTargetException e) { |
||||
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
||||
} |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Populate |
||||
*/ |
||||
public void populateBean(PredefinedCellStyleConfig ob) { |
||||
if (ob == null) { |
||||
return; |
||||
} |
||||
|
||||
List nameStyleList = new ArrayList(); |
||||
|
||||
Iterator styleNameIterator = ob.getStyleNameIterator(); |
||||
while (styleNameIterator.hasNext()) { |
||||
String name = (String) styleNameIterator.next(); |
||||
PredefinedCellStyle tmpStyle = ob.getStyle(name); |
||||
|
||||
if (tmpStyle != null) { |
||||
nameStyleList.add(new NameObject(name, tmpStyle)); |
||||
} |
||||
} |
||||
|
||||
NameObject[] nameObjects = new NameObject[nameStyleList.size()]; |
||||
nameStyleList.toArray(nameObjects); |
||||
|
||||
populate(nameObjects); |
||||
} |
||||
|
||||
|
||||
public PredefinedCellStyleConfig updateBean() { |
||||
Nameable[] nameables = this.update(); |
||||
PredefinedCellStyleConfig styleConfig = new PredefinedCellStyleConfig(); |
||||
for (int i = 0; i < nameables.length; i++) { |
||||
PredefinedCellStyle tmpStyle = (PredefinedCellStyle) ((NameObject) nameables[i]).getObject(); |
||||
tmpStyle.setName(nameables[i].getName()); |
||||
styleConfig.addStyle(tmpStyle); |
||||
} |
||||
return styleConfig; |
||||
} |
||||
|
||||
|
||||
} |
@ -1,332 +0,0 @@
|
||||
package com.fr.design.mainframe.predefined.ui.detail; |
||||
|
||||
import com.fr.base.BaseUtils; |
||||
import com.fr.base.Style; |
||||
import com.fr.config.predefined.PredefinedCellStyle; |
||||
import com.fr.config.predefined.PredefinedCellStyleConfig; |
||||
import com.fr.design.beans.BasicBeanPane; |
||||
import com.fr.design.dialog.FineJOptionPane; |
||||
import com.fr.design.gui.NameInspector; |
||||
import com.fr.design.gui.ibutton.UIButton; |
||||
import com.fr.design.gui.ilist.JNameEdList; |
||||
import com.fr.design.gui.ilist.ListModelElement; |
||||
import com.fr.design.gui.ilist.ModNameActionListener; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.design.icon.IconPathConstants; |
||||
import com.fr.design.layout.FRGUIPaneFactory; |
||||
import com.fr.design.mainframe.predefined.ui.PredefinedStyleEditPane; |
||||
import com.fr.design.mainframe.predefined.ui.detail.cell.CustomPredefinedStylePane; |
||||
import com.fr.general.ComparatorUtils; |
||||
import com.fr.general.NameObject; |
||||
import com.fr.report.cell.DefaultTemplateCellElement; |
||||
import com.fr.report.cell.TemplateCellElement; |
||||
import com.fr.report.core.PaintUtils; |
||||
import com.fr.stable.Constants; |
||||
import com.fr.stable.Nameable; |
||||
import com.fr.stable.StringUtils; |
||||
|
||||
import javax.swing.DefaultListModel; |
||||
import javax.swing.JOptionPane; |
||||
import javax.swing.JPanel; |
||||
import javax.swing.SwingUtilities; |
||||
import javax.swing.event.ChangeEvent; |
||||
import javax.swing.event.ChangeListener; |
||||
import java.awt.BorderLayout; |
||||
import java.awt.CardLayout; |
||||
import java.awt.Dimension; |
||||
import java.awt.FlowLayout; |
||||
import java.awt.Graphics; |
||||
import java.awt.Graphics2D; |
||||
import java.awt.Rectangle; |
||||
import java.awt.event.ActionEvent; |
||||
import java.awt.event.ActionListener; |
||||
import java.awt.event.MouseAdapter; |
||||
import java.awt.event.MouseEvent; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.Iterator; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Created by kerry on 2020-09-01 |
||||
*/ |
||||
public class CellStyleSettingPane extends BasicBeanPane<PredefinedCellStyleConfig> { |
||||
|
||||
private StyleListPane styleListPane; |
||||
private List<CustomPredefinedStylePane> customStylePaneList = new ArrayList<>(); |
||||
private CardLayout cardLayout; |
||||
private JPanel centerPane; |
||||
private PredefinedStyleEditPane editPane; |
||||
private CellStylePreviewPane previewPane; |
||||
private UIButton removeBtn; |
||||
|
||||
public CellStyleSettingPane(PredefinedStyleEditPane editPane) { |
||||
this.editPane = editPane; |
||||
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
||||
this.add(createLeftPane(), BorderLayout.WEST); |
||||
this.add(createCenterPane(), BorderLayout.CENTER); |
||||
} |
||||
|
||||
private JPanel createLeftPane() { |
||||
JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); |
||||
panel.setPreferredSize(new Dimension(80, 267)); |
||||
panel.add(createToolPane(), BorderLayout.NORTH); |
||||
panel.add(createStyleListPane(), BorderLayout.CENTER); |
||||
return panel; |
||||
} |
||||
|
||||
private JPanel createToolPane() { |
||||
JPanel panel = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); |
||||
UIButton addBtn = new UIButton(BaseUtils.readIcon(IconPathConstants.ADD_POPMENU_ICON_PATH)); |
||||
addBtn.addActionListener(new ActionListener() { |
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
styleListPane.addNewStyle(); |
||||
} |
||||
}); |
||||
addBtn.setBorderPainted(false); |
||||
panel.add(addBtn); |
||||
removeBtn = new UIButton(BaseUtils.readIcon(IconPathConstants.TD_REMOVE_ICON_PATH)); |
||||
removeBtn.setBorderPainted(false); |
||||
removeBtn.addActionListener(new ActionListener() { |
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
styleListPane.removeStyle(); |
||||
} |
||||
}); |
||||
panel.add(removeBtn); |
||||
return panel; |
||||
} |
||||
|
||||
private JPanel createStyleListPane() { |
||||
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); |
||||
jPanel.setPreferredSize(new Dimension(80, 249)); |
||||
styleListPane = new StyleListPane(); |
||||
jPanel.add(styleListPane); |
||||
return jPanel; |
||||
} |
||||
|
||||
private JPanel createCenterPane() { |
||||
JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); |
||||
JPanel titlePreviewPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); |
||||
titlePreviewPane.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); |
||||
previewPane = new CellStylePreviewPane(); |
||||
previewPane.setPreferredSize(new Dimension(100, 20)); |
||||
titlePreviewPane.setPreferredSize(new Dimension(230, 45)); |
||||
titlePreviewPane.add(previewPane); |
||||
panel.add(titlePreviewPane, BorderLayout.NORTH); |
||||
cardLayout = new CardLayout(); |
||||
centerPane = new JPanel(cardLayout); |
||||
panel.add(centerPane, BorderLayout.CENTER); |
||||
|
||||
return panel; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void populateBean(PredefinedCellStyleConfig ob) { |
||||
styleListPane.populate(ob); |
||||
} |
||||
|
||||
@Override |
||||
public PredefinedCellStyleConfig updateBean() { |
||||
return styleListPane.update(); |
||||
} |
||||
|
||||
@Override |
||||
protected String title4PopupWindow() { |
||||
return null; |
||||
} |
||||
|
||||
class StyleListPane extends JPanel { |
||||
private DefaultListModel defaultListModel; |
||||
private JNameEdList styleList; |
||||
|
||||
public StyleListPane() { |
||||
defaultListModel = new DefaultListModel(); |
||||
styleList = new JNameEdList(defaultListModel) { |
||||
public Rectangle createRect(Rectangle rect, int iconWidth) { |
||||
return new Rectangle(rect.x, rect.y, rect.width, rect.height); |
||||
} |
||||
|
||||
}; |
||||
styleList.setEditable(true); |
||||
styleList.addModNameActionListener(new ModNameActionListener() { |
||||
public void nameModed(int index, String oldName, String newName) { |
||||
if (ComparatorUtils.equals(oldName, newName) || ComparatorUtils.equals(newName, NameInspector.ILLEGAL_NAME_HOLDER)) { |
||||
return; |
||||
} |
||||
String[] allNames = styleList.getAllNames(); |
||||
allNames[index] = StringUtils.EMPTY; |
||||
if (StringUtils.isEmpty(newName)) { |
||||
showTipDialogAndReset(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Empty_Name"), index); |
||||
return; |
||||
} |
||||
if (isNameRepeated(new List[]{Arrays.asList(allNames)}, newName)) { |
||||
showTipDialogAndReset(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Duplicate_Name", newName), index); |
||||
styleList.setNameAt("请重新命名", index); |
||||
return; |
||||
} |
||||
styleList.repaint(); |
||||
|
||||
} |
||||
}); |
||||
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
||||
this.add(styleList, BorderLayout.CENTER); |
||||
|
||||
styleList.addMouseListener(new MouseAdapter() { |
||||
@Override |
||||
public void mouseClicked(MouseEvent e) { |
||||
int selectIndex = styleList.getSelectedIndex(); |
||||
Object nameable = styleList.getType(selectIndex); |
||||
if (nameable == null) { |
||||
return; |
||||
} |
||||
PredefinedCellStyle cellStyle = ((PredefinedCellStyle) nameable); |
||||
cardLayout.show(centerPane, styleList.getNameAt(selectIndex)); |
||||
styleList.stopEditing(); |
||||
removeBtn.setEnabled(!cellStyle.isBuiltIn()); |
||||
if (!validateCouldRename(cellStyle)) { |
||||
return; |
||||
} |
||||
if (e.getClickCount() >= 2 |
||||
&& SwingUtilities.isLeftMouseButton(e)) { |
||||
styleList.editItemAt(styleList.getSelectedIndex()); |
||||
} |
||||
} |
||||
}); |
||||
} |
||||
|
||||
private boolean validateCouldRename(PredefinedCellStyle cellStyle) { |
||||
return !cellStyle.isBuiltIn(); |
||||
} |
||||
|
||||
|
||||
private void showTipDialogAndReset(String content, int index) { |
||||
styleList.stopEditing(); |
||||
|
||||
FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(StyleListPane.this), |
||||
content, |
||||
Toolkit.i18nText("Fine-Design_Basic_Alert"), |
||||
JOptionPane.WARNING_MESSAGE); |
||||
} |
||||
|
||||
protected boolean isNameRepeated(java.util.List[] list, String name) { |
||||
for (int i = 0; i < list.length; i++) { |
||||
if (list[i].contains(name)) { |
||||
return true; |
||||
} |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
public void populate(PredefinedCellStyleConfig ob) { |
||||
Iterator<PredefinedCellStyle> iterator = ob.getAllStyles().values().iterator(); |
||||
while (iterator.hasNext()) { |
||||
PredefinedCellStyle entry = iterator.next(); |
||||
addStyle(entry); |
||||
|
||||
} |
||||
reset(); |
||||
|
||||
} |
||||
|
||||
private void reset() { |
||||
if (defaultListModel.getSize() > 0) { |
||||
styleList.setSelectedIndex(0); |
||||
removeBtn.setEnabled(false); |
||||
cardLayout.show(centerPane, styleList.getNameAt(0)); |
||||
centerPane.validate(); |
||||
Object nameable = styleList.getType(0); |
||||
if (nameable == null) { |
||||
return; |
||||
} |
||||
PredefinedCellStyle cellStyle = ((PredefinedCellStyle) nameable); |
||||
previewPane.refresh(cellStyle.getStyle()); |
||||
} |
||||
} |
||||
|
||||
public PredefinedCellStyleConfig update() { |
||||
PredefinedCellStyleConfig config = new PredefinedCellStyleConfig(); |
||||
for (int i = 0; i < defaultListModel.getSize(); i++) { |
||||
String name = styleList.getNameAt(i); |
||||
Style style = customStylePaneList.get(i).updateBean(); |
||||
config.addStyle(new PredefinedCellStyle(name, style)); |
||||
} |
||||
return config; |
||||
} |
||||
|
||||
public void addNewStyle() { |
||||
String newStyleName = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Predefined_Cell_New_Style"); |
||||
if (isNameRepeated(new List[]{Arrays.asList(styleList.getAllNames())}, |
||||
newStyleName)) { |
||||
showTipDialogAndReset(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Duplicate_Name", newStyleName), 0); |
||||
return; |
||||
} |
||||
PredefinedCellStyle cellStyle = new PredefinedCellStyle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Predefined_Cell_New_Style"), Style.getInstance()); |
||||
addStyle(cellStyle); |
||||
} |
||||
|
||||
public void addStyle(PredefinedCellStyle cellStyle) { |
||||
ListModelElement el = new ListCellStyleModelElement(new NameObject(cellStyle.getName(), cellStyle)); |
||||
defaultListModel.addElement(el); |
||||
CustomPredefinedStylePane customPredefinedStylePane = new CustomPredefinedStylePane(); |
||||
customPredefinedStylePane.populateBean(cellStyle.getStyle()); |
||||
customPredefinedStylePane.addChangeListener(new ChangeListener() { |
||||
@Override |
||||
public void stateChanged(ChangeEvent e) { |
||||
previewPane.refresh(customPredefinedStylePane.updateBean()); |
||||
editPane.valueChangeAction(); |
||||
} |
||||
}); |
||||
centerPane.add(customPredefinedStylePane, cellStyle.getName()); |
||||
customStylePaneList.add(customPredefinedStylePane); |
||||
} |
||||
|
||||
public void removeStyle() { |
||||
int selectIndex = styleList.getSelectedIndex(); |
||||
defaultListModel.remove(selectIndex); |
||||
centerPane.remove(customStylePaneList.get(selectIndex)); |
||||
customStylePaneList.remove(selectIndex); |
||||
reset(); |
||||
} |
||||
} |
||||
|
||||
class ListCellStyleModelElement extends com.fr.design.gui.ilist.ListModelElement { |
||||
private Nameable nameable; |
||||
|
||||
public ListCellStyleModelElement(Nameable nameable) { |
||||
super(nameable); |
||||
this.nameable = nameable; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return this.nameable.getName(); |
||||
} |
||||
} |
||||
|
||||
class CellStylePreviewPane extends JPanel { |
||||
private TemplateCellElement ce; |
||||
|
||||
public CellStylePreviewPane() { |
||||
ce = new DefaultTemplateCellElement(); |
||||
ce.setValue(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Predefined_Cell_Test_Word")); |
||||
} |
||||
|
||||
public void refresh(Style style) { |
||||
this.ce.setStyle(style); |
||||
this.repaint(); |
||||
} |
||||
|
||||
@Override |
||||
public void paint(Graphics g) { |
||||
Style.paintBackground((Graphics2D) g, ce.getStyle(), this.getWidth(), this.getHeight()); |
||||
Style.paintBorder((Graphics2D) g, ce.getStyle(), this.getWidth(), this.getHeight()); |
||||
PaintUtils.paintGridCellContent((Graphics2D) g, ce, this.getWidth(), this.getHeight(), Constants.FR_PAINT_RESOLUTION); |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
Loading…
Reference in new issue