帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

180 lines
8.2 KiB

package com.fr.design.condition;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.widget.CellWidgetCardPane;
import com.fr.design.widget.FloatWidgetManageCardPane;
import com.fr.design.widget.WidgetPane;
import com.fr.form.ui.*;
import com.fr.form.ui.TextArea;
import com.fr.report.cell.cellattr.highlight.HighlightAction;
import com.fr.report.cell.cellattr.highlight.WidgetHighlightAction;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.row;
/**
* @author richie
* @date 2015-03-26
* @since 8.0
*/
public class WidgetHighlightPane extends ConditionAttrSingleConditionPane<HighlightAction> {
private static final int DIALOG_WIDTH = 700;
private static final int DIALOG_HEIGHT = 400;
private Widget widget;
private UIComboBox box;
private UICheckBox useWidget;
private UIButton widgetButton;
public WidgetHighlightPane(final ConditionAttributesPane conditionAttributesPane) {
super(conditionAttributesPane);
widgetButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit"));
widgetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
final WidgetPane widgetPane = new WidgetPane() {
@Override
protected CellWidgetCardPane initWidgetCardPane(ElementCasePane pane) {
return new FloatWidgetManageCardPane(pane);
}
};
widgetPane.populate(widget);
BasicDialog dialog = widgetPane.showWindow(
SwingUtilities.getWindowAncestor(conditionAttributesPane));
dialog.addDialogActionListener(new DialogActionAdapter() {
public void doOk() {
widget = widgetPane.update();
setComboBox();
}
});
dialog.setVisible(true);
}
});
UILabel widgetLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget") + ":");
String[] editorTypes = new String[] {
"",
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Text"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_TextArea"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Number"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Password"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Button"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_CheckBox"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Radio_Group"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_CheckBox_Group"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ComboBox"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_ComboCheckBox"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Date"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_List"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Iframe"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tree_ComboBox"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_View_Tree")
};
box = new UIComboBox(editorTypes);
box.setEnabled(false);
widgetButton.setEnabled(false);
useWidget = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Use_Widget"));
useWidget.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!useWidget.isSelected()) {
box.setSelectedIndex(0);
widgetButton.setEnabled(false);
} else {
setComboBox();
widgetButton.setEnabled(true);
}
}
});
this.add(row(10, cell(widgetLabel).weight(0.2), row(
10,
cell(box),
cell(widgetButton),
cell(useWidget)).weight(0.8)
).with(it -> it.setBorder(new ScaledEmptyBorder(5, 5, 5, 0))).getComponent(), BorderLayout.CENTER);
}
@Override
public String nameForPopupMenuItem() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget");
}
@Override
protected String title4PopupWindow() {
return nameForPopupMenuItem();
}
public void setComboBox() {
Widget value = this.widget;
if (value instanceof ComboCheckBox) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_ComboCheckBox"));
} else if (value instanceof ComboBox) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ComboBox"));
} else if (value instanceof NumberEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Number"));
} else if (value instanceof IframeEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Iframe"));
} else if (value instanceof FreeButton) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Button"));
} else if (value instanceof DateEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Date"));
} else if (value instanceof CheckBox) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_CheckBox"));
} else if (value instanceof RadioGroup) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Radio_Group"));
} else if (value instanceof CheckBoxGroup) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_CheckBox_Group"));
} else if (value instanceof MultiFileEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File"));
} else if (value instanceof ListEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_List"));
} else if (value instanceof TreeComboBoxEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tree_ComboBox"));
} else if (value instanceof TreeEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_View_Tree"));
} else if (value instanceof Password) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Password"));
} else if (value instanceof TextArea) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_TextArea"));
} else if (value instanceof TextEditor) {
box.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Text"));
}
}
public void populate(HighlightAction ha) {
this.widget = ((WidgetHighlightAction)ha).getWidget();
if (widget == null) {
useWidget.setSelected(false);
box.setSelectedIndex(0);
widgetButton.setEnabled(false);
} else {
useWidget.setSelected(true);
setComboBox();
widgetButton.setEnabled(true);
}
}
public HighlightAction update() {
if (useWidget.isSelected()) {
return new WidgetHighlightAction(widget);
}
return new WidgetHighlightAction();
}
}