帆软报表设计器源代码。
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.
 
 
 
 

229 lines
5.2 KiB

package com.fr.design.dialog;
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.BorderFactory;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import com.fr.design.layout.FRGUIPaneFactory;
/**
* WizardPane. Add with getContentPane().
*/
public class JWizardPanel extends BasicPane {
JWizardDialog dialogParent;
// The step title
JPanel titlePanel;
String stepTitle;
UILabel stepTitleLabel;
// The content pane
JPanel contentPane;
// The back and next steps
int backStep = -1;
int nextStep = -1;
// Flags the first time the component is added to a window
boolean firstNotify = true;
/**
* Creates a new JWizardPanel with a double buffer and a flow layout. The
* flow layout is assigned to the panel accessed through getContentPane().
*/
public JWizardPanel() {
super();
initComponents();
}
/**
* Initialize the JWizardPanel.
*/
private void initComponents() {
setLayout(FRGUIPaneFactory.createBorderLayout());
// Set the layout for the content area
contentPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
contentPane.setBorder(BorderFactory.createEmptyBorder(2, 2, 4, 4));
// Step title
titlePanel =FRGUIPaneFactory.createBorderLayout_S_Pane();
titlePanel.add(new JSeparator(), BorderLayout.SOUTH);
stepTitleLabel = new UILabel(" ");
titlePanel.add(stepTitleLabel);
add(titlePanel, BorderLayout.NORTH);
add(contentPane, BorderLayout.CENTER);
}
@Override
protected String title4PopupWindow() {
return "wizard";
}
/**
* Set the title to use for this step. Normally this title would be unique
* for each wizards step.
*
* @param stepTitle The title to use for this step.
*/
public void setStepTitle(String stepTitle) {
this.stepTitle = stepTitle;
stepTitleLabel.setText(stepTitle);
stepTitleLabel.invalidate();
validate();
}
/**
* Get the step title to use for this step.
*
* @return The step title to use for this step.
*/
public String getStepTitle() {
return stepTitle;
}
/**
* Get a JPanel to use for adding your own components to this WizardPanel.
* Do not add components directly to the JWizardPanel. The JPanel uses the
* layout given in the JWizardPanel constructor.
*
* @return The JPanel to use for adding components for this wizard step.
*/
public JPanel getContentPane() {
return contentPane;
}
/**
* Get the wizard step to go to when the Back button is pressed.
*
* @return The wizard step to go to when the Back button is pressed.
*/
public int getBackStep() {
return backStep;
}
/**
* Set the wizard step to go to when the Back button is pressed. This should
* be set in the constructor of the JWizardPanel subclass since it
* determines whether the Back button is enabled or not.
*
* @param backStep
* The wizard step to go to when the Back button is pressed.
*/
public void setBackStep(int backStep) {
this.backStep = backStep;
JWizardDialog dialog = getWizardParent();
if (dialog != null) {
dialog.applyButtonStates();
}
}
/**
* Get the wizard step to go to when the Next button is pressed.
*
* @return The wizard step to go to when the Next button is pressed.
*/
public int getNextStep() {
return nextStep;
}
/**
* Set the wizard step to go to when the Next button is pressed. This should
* be set in the constructor of the JWizardPanel subclass since it
* determines whether the Next and Finish buttons are enabled or not.
*
* @param nextStep The wizard step to go to when the Next button is pressed.
*/
public void setNextStep(int nextStep) {
this.nextStep = nextStep;
JWizardDialog dialog = getWizardParent();
if (dialog != null) {
dialog.applyButtonStates();
}
}
/**
* Returns the JWizardDialog in which this JWizardPanel resides. This is
* valid only after the panel has been added to the dialog.
*
* @return The JWizardDialog in which this JWizardPanel resides.
*/
public JWizardDialog getWizardParent() {
return dialogParent;
}
/**
* Do not call directly.
*/
public void addNotify() {
if (firstNotify) {
Font font = stepTitleLabel.getFont();
font = font.deriveFont(Font.BOLD, (float) (font.getSize() * 14 / 10.0D));
stepTitleLabel.setFont(font);
firstNotify = false;
}
super.addNotify();
}
/**
* Set the JWizardDialog parent for this JWizardPanel.
*
* @param dialogParent
* The JWizardPanel parent for this JWizardPanel.
*/
void setWizardParent(JWizardDialog dialogParent) {
this.dialogParent = dialogParent;
}
/**
* Calls back(). This allows the JWizardDialog to call the protected method
* back().
*
* @see #back()
*/
void doBack() {
back();
}
/**
* Calls next(). This allows the JWizardDialog to call the protected method
* next().
*
* @see #next()
*/
void doNext() {
next();
}
/**
* Called when the Back button is pressed. By default this displays the
* wizard step set by setBackStep().
*
* @see #setBackStep(int)
*/
protected void back() {
dialogParent.goTo(getBackStep());
}
/**
* Called when the Next button is pressed. By default this displays the
* wizard step set by setNextStep().
*
* @see #setNextStep(int)
*/
protected void next() {
dialogParent.goTo(getNextStep());
}
}