|
|
@ -1,29 +1,41 @@ |
|
|
|
package com.fr.design.mainframe.form; |
|
|
|
package com.fr.design.mainframe.form; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.ScreenResolution; |
|
|
|
import com.fr.design.event.TargetModifiedEvent; |
|
|
|
import com.fr.design.event.TargetModifiedEvent; |
|
|
|
import com.fr.design.event.TargetModifiedListener; |
|
|
|
import com.fr.design.event.TargetModifiedListener; |
|
|
|
|
|
|
|
import com.fr.design.file.HistoryTemplateListPane; |
|
|
|
|
|
|
|
import com.fr.design.gui.ispinner.UIBasicSpinner; |
|
|
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
import com.fr.design.mainframe.BaseJForm; |
|
|
|
import com.fr.design.mainframe.BaseJForm; |
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.JForm; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.JSliderPane; |
|
|
|
import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; |
|
|
|
import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; |
|
|
|
import com.fr.form.FormElementCaseContainerProvider; |
|
|
|
import com.fr.form.FormElementCaseContainerProvider; |
|
|
|
import com.fr.form.FormElementCaseProvider; |
|
|
|
import com.fr.form.FormElementCaseProvider; |
|
|
|
import com.fr.report.worksheet.FormElementCase; |
|
|
|
import com.fr.report.worksheet.FormElementCase; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
import javax.swing.*; |
|
|
|
|
|
|
|
import javax.swing.event.ChangeEvent; |
|
|
|
|
|
|
|
import javax.swing.event.ChangeListener; |
|
|
|
import java.awt.*; |
|
|
|
import java.awt.*; |
|
|
|
|
|
|
|
import java.awt.event.ItemEvent; |
|
|
|
|
|
|
|
import java.awt.event.ItemListener; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 整个FormElementCase编辑区域 包括滚动条、中间的grid或者聚合块、下面的sheetTab |
|
|
|
* 整个FormElementCase编辑区域 包括滚动条、中间的grid或者聚合块、下面的sheetTab |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class FormReportComponentComposite extends JComponent implements TargetModifiedListener, FormECCompositeProvider{ |
|
|
|
public class FormReportComponentComposite extends JComponent implements TargetModifiedListener, FormECCompositeProvider{ |
|
|
|
|
|
|
|
|
|
|
|
private FormElementCaseDesigner elementCaseDesigner; |
|
|
|
private static final int MAX = 400; |
|
|
|
|
|
|
|
private static final int HUND = 100; |
|
|
|
|
|
|
|
private static final int MIN = 10; |
|
|
|
|
|
|
|
public FormElementCaseDesigner elementCaseDesigner; |
|
|
|
private BaseJForm jForm; |
|
|
|
private BaseJForm jForm; |
|
|
|
|
|
|
|
|
|
|
|
private FormTabPane sheetNameTab; |
|
|
|
private FormTabPane sheetNameTab; |
|
|
|
private JPanel hbarContainer; |
|
|
|
private JPanel hbarContainer; |
|
|
|
|
|
|
|
private JSliderPane jSliderContainer; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public FormReportComponentComposite(BaseJForm jform, FormElementCaseDesigner elementCaseDesign, FormElementCaseContainerProvider ecContainer) { |
|
|
|
public FormReportComponentComposite(BaseJForm jform, FormElementCaseDesigner elementCaseDesign, FormElementCaseContainerProvider ecContainer) { |
|
|
@ -33,10 +45,33 @@ public class FormReportComponentComposite extends JComponent implements TargetMo |
|
|
|
this.add(elementCaseDesigner, BorderLayout.CENTER); |
|
|
|
this.add(elementCaseDesigner, BorderLayout.CENTER); |
|
|
|
sheetNameTab = new FormTabPane(ecContainer, jform); |
|
|
|
sheetNameTab = new FormTabPane(ecContainer, jform); |
|
|
|
this.add(createSouthControlPane(), BorderLayout.SOUTH); |
|
|
|
this.add(createSouthControlPane(), BorderLayout.SOUTH); |
|
|
|
|
|
|
|
jSliderContainer.getShowVal().addChangeListener(showValSpinnerChangeListener); |
|
|
|
|
|
|
|
jSliderContainer.getSelfAdaptButton().addItemListener(selfAdaptButtonItemListener); |
|
|
|
elementCaseDesigner.addTargetModifiedListener(this); |
|
|
|
elementCaseDesigner.addTargetModifiedListener(this); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ChangeListener showValSpinnerChangeListener = new ChangeListener() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void stateChanged(ChangeEvent e) { |
|
|
|
|
|
|
|
double value = (int) ((UIBasicSpinner)e.getSource()).getValue(); |
|
|
|
|
|
|
|
value = value>MAX ? MAX : value; |
|
|
|
|
|
|
|
value = value<MIN ? MIN : value; |
|
|
|
|
|
|
|
int resolution = (int) (ScreenResolution.getScreenResolution()*value/HUND); |
|
|
|
|
|
|
|
JForm jf = (JForm) HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); |
|
|
|
|
|
|
|
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setScale(resolution); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ItemListener selfAdaptButtonItemListener = new ItemListener() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void itemStateChanged(ItemEvent e) { |
|
|
|
|
|
|
|
if (jSliderContainer.getSelfAdaptButton().isSelected()){ |
|
|
|
|
|
|
|
int resolution = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().selfAdaptUpdate(); |
|
|
|
|
|
|
|
jSliderContainer.getShowVal().setValue(resolution*HUND/ScreenResolution.getScreenResolution()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
private java.util.List<TargetModifiedListener> targetModifiedList = new java.util.ArrayList<TargetModifiedListener>(); |
|
|
|
private java.util.List<TargetModifiedListener> targetModifiedList = new java.util.ArrayList<TargetModifiedListener>(); |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -62,13 +97,18 @@ public class FormReportComponentComposite extends JComponent implements TargetMo |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private JComponent createSouthControlPane() { |
|
|
|
private JComponent createSouthControlPane() { |
|
|
|
|
|
|
|
JPanel southPane = new JPanel(new BorderLayout()); |
|
|
|
hbarContainer = FRGUIPaneFactory.createBorderLayout_S_Pane(); |
|
|
|
hbarContainer = FRGUIPaneFactory.createBorderLayout_S_Pane(); |
|
|
|
hbarContainer.add(elementCaseDesigner.getHorizontalScrollBar()); |
|
|
|
hbarContainer.add(elementCaseDesigner.getHorizontalScrollBar()); |
|
|
|
JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sheetNameTab, hbarContainer); |
|
|
|
jSliderContainer = JSliderPane.getInstance(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sheetNameTab, jSliderContainer); |
|
|
|
|
|
|
|
southPane.add(hbarContainer,BorderLayout.NORTH); |
|
|
|
|
|
|
|
southPane.add(splitpane,BorderLayout.CENTER); |
|
|
|
splitpane.setBorder(null); |
|
|
|
splitpane.setBorder(null); |
|
|
|
splitpane.setDividerSize(3); |
|
|
|
splitpane.setDividerSize(3); |
|
|
|
splitpane.setResizeWeight(0.6); |
|
|
|
splitpane.setResizeWeight(1); |
|
|
|
return splitpane; |
|
|
|
return southPane; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|