Example usage for com.jgoodies.binding.adapter SpinnerToValueModelConnector connect

List of usage examples for com.jgoodies.binding.adapter SpinnerToValueModelConnector connect

Introduction

In this page you can find the example usage for com.jgoodies.binding.adapter SpinnerToValueModelConnector connect.

Prototype

@SuppressWarnings("unused")
public static void connect(SpinnerModel spinnerModel, ValueModel valueModel, Object defaultValue) 

Source Link

Document

Establishes a synchronization between the SpinnerModel and ValueModel.

Usage

From source file:com.songbook.pc.ui.view.MainFormView.java

License:Open Source License

/**
 * Constructor - creates the MainFormView.
 * @param presentationModel Presentation model for the view.
 *///from w w w.  j  av a2 s.c o  m
public MainFormView(final MainFormPresentationModel presentationModel) {
    presentationModel.setFrame(this);

    PropertyConnector.connectAndUpdate(presentationModel.getTitleModel(), this, "title");

    // == LEFT TOOLBAR ==
    editButton = new JButton(presentationModel.getEditAction());
    transposeSpinner = new JSpinner();
    SpinnerToValueModelConnector.connect(transposeSpinner.getModel(), presentationModel.getTransposeModel(), 0);

    // == RIGHT TOOLBAR ==
    newButton = new JButton(presentationModel.getNewAction());
    saveButton = new JButton(presentationModel.getSaveAction());
    exportHtmlButton = new JButton(presentationModel.getExportHtmlAction());
    exportLatexButton = new JButton(presentationModel.getExportLatexAction());
    exportPDFButton = new JButton(presentationModel.getExportPdfAction());
    exportEPubButton = new JButton(presentationModel.getExportEPubAction());
    encodingComboBox = BasicComponentFactory.createComboBox(presentationModel.getEncodingModel());

    // == MODEL ==
    editorPane = createEditorPane(presentationModel.getEditorModel().getTextModel(), "/css/editorPane.css");
    PropertyConnector.connectAndUpdate(presentationModel.getEditorModel().getEditableModel(), editorPane,
            "editable");
    PropertyConnector.connectAndUpdate(presentationModel.getEditorModel().getContentTypeModel(), editorPane,
            "contentType");
    PropertyConnector.connectAndUpdate(presentationModel.getEditorModel().getTextModel(), editorPane, "text");
    PropertyConnector.connectAndUpdate(presentationModel.getEditorModel().getCaretPositionModel(), editorPane,
            "caretPosition");

    // == BOTTOM TOOLBAR ==
    logPane = createEditorPane(null, "/css/logPane.css");
    logPane.setContentType("text/html");
    logPane.setEditable(false);
    // One-Way binding of text property
    logPane.setText((String) presentationModel.getLogObservingModel().getTextModel().getValue());
    presentationModel.getLogObservingModel().getTextModel()
            .addValueChangeListener(new PropertyChangeListener() {
                @Override
                public void propertyChange(PropertyChangeEvent evt) {
                    logPane.setText(
                            (String) presentationModel.getLogObservingModel().getTextModel().getValue());
                    logPane.setCaretPosition(logPane.getDocument().getLength());
                }
            });

    // == SONG SELECTION ==
    TableModel tableModel = new SongListTableAdapter(
            presentationModel.getSongListPresentationModel().getSongListModel());
    songSelectionTable = new JTable(tableModel);
    songSelectionTable.setRowSorter(new TableRowSorter<TableModel>(tableModel));
    songSelectionTable.getRowSorter().setSortKeys(Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING)));
    bind2Way(songSelectionTable, presentationModel.getSongListPresentationModel().getSongListModel());
    if (!presentationModel.getSongListPresentationModel().getSongListModel().isEmpty()) {
        songSelectionTable.getSelectionModel().setSelectionInterval(0, 0);
    }

    // == DO LAYOUT ==
    initLayout();

    // == OTHER INITIALIZATION ==
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
}