📄 bandsdialog.java
字号:
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
jPanel3.add(jRTextExpressionArea, gridBagConstraints);
jPanel2.add(jPanel3, java.awt.BorderLayout.CENTER);
jPanelButtons.add(jPanel2, java.awt.BorderLayout.CENTER);
jPanelFields.add(jPanelButtons, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanelFields, java.awt.BorderLayout.CENTER);
jScrollPane1.setToolTipText("");
jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane1.setPreferredSize(new java.awt.Dimension(150, 131));
jListBands.setBorder(new javax.swing.border.EtchedBorder());
jListBands.setFont(new java.awt.Font("Dialog", 0, 11));
jListBands.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jListBands.setToolTipText("List of bands");
jListBands.setMaximumSize(new java.awt.Dimension(32767, 32767));
jListBands.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
jListBandsValueChanged(evt);
}
});
jScrollPane1.setViewportView(jListBands);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.WEST);
pack();
}//GEN-END:initComponents
private void jCheckBoxSplitAllowedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSplitAllowedActionPerformed
Band b = (Band)this.jListBands.getSelectedValue();
if (b != null) b.setSplitAllowed( jCheckBoxSplitAllowed.isSelected());
}//GEN-LAST:event_jCheckBoxSplitAllowedActionPerformed
private void jNumberFieldHeightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jNumberFieldHeightActionPerformed
Band b = (Band)this.jListBands.getSelectedValue();
// 1. we set band height, but first we adjust elements position
int delta = (int)jNumberFieldHeight.getValue() - b.getHeight();
if (delta != 0)
{
Report report = getJReportFrame().getReport();
int min_height = 0;
int band_h = getJReportFrame().getReport().getBandYLocation(b) +10;
if (delta < -( b.getHeight()-min_height) ) delta= -(b.getHeight()-min_height);
//if (report.getDesignHeightNoBG()+delta > report.getPagesize().y) delta = report.getPagesize().y- report.getDesignHeightNoBG();
if (!b.getName().equals("background") &&
!( b.getName().equals("title") && getJReportFrame().getReport().isIsTitleNewPage()) &&
!( b.getName().equals("summary") && getJReportFrame().getReport().isIsSummaryNewPage()))
{
int designHeight = report.getDesignHeightNoBG();
if (report.isIsTitleNewPage())
{
designHeight -= report.getBandByName("title").getHeight();
}
if (report.isIsSummaryNewPage())
{
designHeight -= report.getBandByName("summary").getHeight();
}
if (designHeight+delta > report.getHeight())
{
delta = report.getHeight()- designHeight;
}
}
else
{
if (b.getHeight()+delta > report.getHeight()-report.getTopMargin()- report.getBottomMargin())
{
delta = report.getHeight()-b.getHeight()-report.getTopMargin()-report.getBottomMargin();
}
}
// Redraw all under the min height...
b.setHeight( b.getHeight() + delta );
int edge_y = Math.min(report.getBandYLocation(b)+b.getHeight(),report.getBandYLocation(b)+b.getHeight()-delta);
Enumeration e = report.getElements().elements();
while (e.hasMoreElements())
{
ReportElement re = (ReportElement)e.nextElement();
if (re.position.y >= edge_y+10)
{
// I should add the distance form the base of resized band, and my element...
int space_before_band = band_h - re.position.y - re.height;
if (band_h <= report.getBandYLocation(re.getBand()) +10)
space_before_band = 0;
re.setPosition(new java.awt.Point(re.getPosition().x, re.getPosition().y+delta));
}
}
try {
jNumberFieldHeight.setValue(b.getHeight());
} catch (Exception ex){}
//System.out.println("Repaint");
getJReportFrame().setIsDocDirty(true);
getJReportFrame().updateScrollBars();
getJReportFrame().getReportPanel().repaint();
}
}//GEN-LAST:event_jNumberFieldHeightActionPerformed
private void jListBandsValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListBandsValueChanged
//
if (jListBands.getModel().getSize() == 0)
{
try {
this.jNumberFieldHeight.setValue( 0 );
} catch (Exception ex) {}
this.jRTextExpressionArea.setText("");
jCheckBoxSplitAllowed.setSelected(false);
return;
}
if (jListBands.getSelectedIndex() < 0)
{
jListBands.setSelectedIndex(0);
return;
}
Band selectedBand = (Band)jListBands.getSelectedValue();
try {
this.jNumberFieldHeight.setValue( selectedBand.getHeight());
} catch (Exception ex) {}
this.jRTextExpressionArea.setText( selectedBand.getPrintWhenExpression());
this.jCheckBoxSplitAllowed.setSelected( selectedBand.isSplitAllowed() );
}//GEN-LAST:event_jListBandsValueChanged
/** Closes the dialog */
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
setVisible(false);
dispose();
}//GEN-LAST:event_closeDialog
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new BandsDialog(new javax.swing.JFrame(), true).show();
}
/** Getter for property jReportFrame.
* @return Value of property jReportFrame.
*
*/
public it.businesslogic.ireport.gui.JReportFrame getJReportFrame() {
return jReportFrame;
}
/** Setter for property jReportFrame.
* @param jReportFrame New value of property jReportFrame.
*
*/
public void setJReportFrame(it.businesslogic.ireport.gui.JReportFrame jReportFrame) {
this.jReportFrame = jReportFrame;
// Update all...
if (jReportFrame == null)
{
setVisible(false);
return;
}
this.setTitle(jReportFrame.getReport().getName()+" bands...");
if (isVisible())
{
updateBands();
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox jCheckBoxSplitAllowed;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JList jListBands;
private it.businesslogic.ireport.gui.JNumberField jNumberFieldHeight;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanelButtons;
private javax.swing.JPanel jPanelFields;
private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionArea;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration//GEN-END:variables
public void setVisible(boolean visible)
{
if (visible == isVisible()) return;
super.setVisible(visible);
if (visible == true)
{
this.setJReportFrame(jReportFrame);
}
}
public void setSelectedBand(String bandName )
{
for (int i=0; i<jListBands.getModel().getSize(); ++i)
{
Band b = (Band)jListBands.getModel().getElementAt( i );
if (b.getName().equals(bandName))
{
jListBands.setSelectedIndex( i );
return;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -