use of javax.swing.SpinnerNumberModel in project jgnash by ccavanaugh.
the class BudgetGoalDialog method layoutMainPanel.
private void layoutMainPanel() {
FormLayout contentLayout = new FormLayout("fill:p:g, $lcgap, fill:p", "f:p:g, $ugap, f:p");
JPanel contentPanel = new JPanel(contentLayout);
DefaultFormBuilder contentBuilder = new DefaultFormBuilder(contentLayout, contentPanel);
contentBuilder.border(Borders.DIALOG);
FormLayout layout = new FormLayout("right:d, $lcgap, fill:p:g", "f:p, $rgap, d, $ugap, f:p:g");
DefaultFormBuilder builder = new DefaultFormBuilder(layout);
cancelButton = new JButton(rb.getString("Button.Cancel"));
okButton = new JButton(rb.getString("Button.Ok"));
historicalButton = new JButton(rb.getString("Button.HistoricalFill"));
fillAmountField = new JFloatField(account.getCurrencyNode());
fillAmountField.setDecimal(BigDecimal.ZERO);
fillPatternAmountField = new JFloatField(account.getCurrencyNode());
fillPatternAmountField.setDecimal(BigDecimal.ZERO);
fillButton = new JButton(rb.getString("Button.Enter"));
fillPatternEnterButton = new JButton(rb.getString("Button.Enter"));
budgetPeriodCombo = new JComboBox<>();
budgetPeriodCombo.setModel(new DefaultComboBoxModel<>(Period.values()));
budgetPeriodCombo.setSelectedItem(getBudgetGoal().getBudgetPeriod());
patternComboBox = new JComboBox<>();
patternComboBox.setModel(new DefaultComboBoxModel<>(Pattern.values()));
int max = getDescriptors().size();
startRowSpinner = new JSpinner(new SpinnerNumberModel(1, 1, max, 1));
endRowSpinner = new JSpinner(new SpinnerNumberModel(max, 1, max, 1));
builder.append(new JLabel(rb.getString("Label.Period")), budgetPeriodCombo);
builder.nextLine();
builder.nextLine();
builder.append(new JLabel(rb.getString("Label.Currency")), new JLabel(account.getCurrencyNode().getSymbol()));
builder.nextLine();
builder.nextLine();
JTable table = new GoalTable(model);
table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// save entry if focus is lost
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
ToolTipManager.sharedInstance().unregisterComponent(table);
JScrollPane scrollPane = new JScrollPane(table);
// force it something small so it will resize correctly
scrollPane.setPreferredSize(new Dimension(SCROLLPANE_WIDTH, SCROLLPANE_HEIGHT));
builder.append(scrollPane, 3);
JPanel patternPanel = new JPanel();
patternPanel.setLayout(new FormLayout(new ColumnSpec[] { FormSpecs.DEFAULT_COLSPEC, FormSpecs.RELATED_GAP_COLSPEC, ColumnSpec.decode("default:grow") }, new RowSpec[] { FormSpecs.RELATED_GAP_ROWSPEC, FormSpecs.DEFAULT_ROWSPEC, FormSpecs.RELATED_GAP_ROWSPEC, FormSpecs.DEFAULT_ROWSPEC, FormSpecs.RELATED_GAP_ROWSPEC, FormSpecs.DEFAULT_ROWSPEC, FormSpecs.RELATED_GAP_ROWSPEC, FormSpecs.DEFAULT_ROWSPEC, FormSpecs.RELATED_GAP_ROWSPEC, FormSpecs.DEFAULT_ROWSPEC }));
patternPanel.add(new JLabel(rb.getString("Label.Pattern")), "1, 2, right, default");
patternPanel.add(patternComboBox, "3, 2, fill, default");
patternPanel.add(new JLabel(rb.getString("Label.StartRow")), "1, 4, right, default");
patternPanel.add(startRowSpinner, "3, 4");
patternPanel.add(new JLabel(rb.getString("Label.EndRow")), "1, 6, right, default");
patternPanel.add(endRowSpinner, "3, 6");
patternPanel.add(new JLabel(rb.getString("Label.Amount")), "1, 8, right, default");
patternPanel.add(fillPatternAmountField, "3, 8, fill, default");
patternPanel.add(new ButtonBarBuilder().addGlue().addButton(fillPatternEnterButton).build(), "3, 10");
FormLayout fillLayout = new FormLayout("right:d, $lcgap, fill:max(48dlu;min):g, $lcgap, d", "d, $rgap, d, $rgap, d, $rgap, d, $rgap, d");
DefaultFormBuilder fillBuilder = new DefaultFormBuilder(fillLayout);
fillBuilder.border(new TitledBorder(rb.getString("Title.SmartFill")));
fillBuilder.append(historicalButton, 5);
fillBuilder.nextLine();
fillBuilder.nextLine();
fillBuilder.appendSeparator();
fillBuilder.nextLine();
fillBuilder.nextLine();
fillBuilder.append(new JLabel(rb.getString("Label.FillAll")), fillAmountField, fillButton);
fillBuilder.nextLine();
fillBuilder.nextLine();
fillBuilder.appendSeparator();
fillBuilder.nextLine();
fillBuilder.nextLine();
fillBuilder.append(patternPanel, 5);
budgetPeriodCombo.addActionListener(this);
cancelButton.addActionListener(this);
okButton.addActionListener(this);
historicalButton.addActionListener(this);
fillButton.addActionListener(this);
fillPatternEnterButton.addActionListener(this);
contentBuilder.append(builder.getPanel(), fillBuilder.getPanel());
contentBuilder.nextLine();
contentBuilder.nextLine();
contentBuilder.append(StaticUIMethods.buildOKCancelBar(okButton, cancelButton), 3);
getContentPane().add(contentBuilder.getPanel());
pack();
setMinimumSize(getSize());
DialogUtils.addBoundsListener(this);
// pack columns for better default appearance
JTableUtils.packGenericTable(table);
}
use of javax.swing.SpinnerNumberModel in project jgnash by ccavanaugh.
the class BudgetGoalDialog method updatePeriod.
private void updatePeriod() {
Period period = (Period) budgetPeriodCombo.getSelectedItem();
getBudgetGoal().setBudgetPeriod(period);
model.updateDescriptors(getDescriptors());
int max = getDescriptors().size();
startRowSpinner.setModel(new SpinnerNumberModel(1, 1, max, 1));
endRowSpinner.setModel(new SpinnerNumberModel(max, 1, max, 1));
}
use of javax.swing.SpinnerNumberModel in project jgnash by ccavanaugh.
the class BudgetOverviewPanel method initComponents.
private void initComponents() {
sparkLinePanel = new JPanel();
FormLayout layout = new FormLayout("d", "d");
sparkLinePanel.setLayout(layout);
model = new SpinnerNumberModel();
model.setValue(LocalDate.now().getYear());
model.setStepSize(1);
yearSpinner = new JSpinner(model);
JSpinner.NumberEditor editor = new JSpinner.NumberEditor(yearSpinner, "####");
yearSpinner.setEditor(editor);
yearSpinner.setEnabled(false);
}
Aggregations