Example usage for com.jgoodies.forms.layout CellConstraints CellConstraints

List of usage examples for com.jgoodies.forms.layout CellConstraints CellConstraints

Introduction

In this page you can find the example usage for com.jgoodies.forms.layout CellConstraints CellConstraints.

Prototype

public CellConstraints() 

Source Link

Document

Constructs a default instance of CellConstraints .

Usage

From source file:ca.phon.app.project.checkwizard.CheckWizardStep1.java

License:Open Source License

private void init() {
    setLayout(new BorderLayout());

    header = new DialogHeader("Check Transcriptions", "Select sessions and operations to perform.");
    add(header, BorderLayout.NORTH);

    JPanel topPanel = new JPanel();
    FormLayout topLayout = new FormLayout("20px, pref, pref:grow", "pref, pref, pref, pref, pref");
    CellConstraints cc = new CellConstraints();
    topPanel.setLayout(topLayout);/*from  w w w . j  a  va  2 s .co m*/

    final SyllabifierLibrary library = SyllabifierLibrary.getInstance();
    final Iterator<Syllabifier> syllabifiers = library.availableSyllabifiers();
    final List<Syllabifier> orderedSyllabifiers = new ArrayList<Syllabifier>();
    while (syllabifiers.hasNext())
        orderedSyllabifiers.add(syllabifiers.next());
    Collections.sort(orderedSyllabifiers, new SyllabifierComparator());

    syllabifierList = new JComboBox(orderedSyllabifiers.toArray(new Syllabifier[0]));
    syllabifierList.setEnabled(false);
    syllabifierList.setRenderer(new SyllabifierCellRenderer());

    final String preferredSyllabifier = PrefHelper.get(PhonProperties.SYLLABIFIER_LANGUAGE,
            PhonProperties.DEFAULT_SYLLABIFIER_LANGUAGE);
    syllabifierList.setSelectedItem(preferredSyllabifier);

    checkIPAButton = new JRadioButton("Check IPA Tiers");
    checkIPAButton.setToolTipText("Check IPA tiers for invalid transcriptions.");
    resetSyllabificationButton = new JRadioButton("Reset syllabification");

    resetSyllabificationButton.setToolTipText("Reset syllabification for all IPA tiers in selected sessions.");
    resetAlignmentBox = new JCheckBox("also reset phone alignment");
    resetAlignmentBox.setEnabled(false);

    resetAlignmentButton = new JRadioButton("Reset phone alignment");
    resetAlignmentButton.setToolTipText("Reset alignment for all records in selected sessions.");

    ButtonGroup btnGroup = new ButtonGroup();
    btnGroup.add(checkIPAButton);
    btnGroup.add(resetSyllabificationButton);
    btnGroup.add(resetAlignmentButton);

    resetSyllabificationButton.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent arg0) {
            resetAlignmentBox.setEnabled(resetSyllabificationButton.isSelected());
            syllabifierList.setEnabled(resetSyllabificationButton.isSelected());
        }
    });

    checkIPAButton.setSelected(true);

    topPanel.add(checkIPAButton, cc.xyw(1, 1, 3));
    topPanel.add(resetSyllabificationButton, cc.xyw(1, 2, 2));
    topPanel.add(syllabifierList, cc.xy(3, 2));
    topPanel.add(resetAlignmentBox, cc.xy(2, 4));
    topPanel.add(resetAlignmentButton, cc.xyw(1, 5, 3));

    topPanel.setBorder(BorderFactory.createTitledBorder("Operation"));

    JPanel centerPanel = new JPanel(new BorderLayout());
    sessionSelector = new SessionSelector(project);
    sessionSelector.setVisibleRowCount(20);
    centerPanel.add(new JScrollPane(sessionSelector), BorderLayout.CENTER);

    centerPanel.setBorder(BorderFactory.createTitledBorder("Select sessions"));

    JPanel innerPanel = new JPanel(new BorderLayout());
    innerPanel.add(topPanel, BorderLayout.NORTH);
    innerPanel.add(centerPanel, BorderLayout.CENTER);

    super.add(innerPanel, BorderLayout.CENTER);
}

From source file:ca.phon.app.project.CopySessionEP.java

License:Open Source License

private void begin() {
    if (project1 == null || project2 == null || corpus1 == null || corpus2 == null || session == null) {
        final CopySessionForm csf = new CopySessionForm();

        if (project1 != null)
            csf.setSelectedProject(project1);

        if (corpus1 != null)
            csf.setSelectedCorpus(corpus1);

        if (session != null)
            csf.setSelectedSession(session);

        if (project2 != null)
            csf.setDestinationProject(project2);

        if (corpus2 != null)
            csf.setSelectedCorpus(corpus2);

        // show the window
        String titleString = (move ? "Move " : "Copy ") + "Session";
        final CommonModuleFrame dialog = new CommonModuleFrame(titleString);

        // setup display
        FormLayout layout = new FormLayout("fill:pref:grow, right:pref",
                "pref, 3dlu, fill:pref:grow, 3dlu, pref, 5dlu");
        dialog.getContentPane().setLayout(layout);

        DialogHeader header = new DialogHeader(titleString, "");
        JButton okButton = new JButton("OK");
        okButton.addActionListener(new ActionListener() {

            @Override//from  w ww .  j  a  v  a2 s . c o m
            public void actionPerformed(ActionEvent e) {
                dialog.setVisible(false);
                dialog.dispose();

                // copy the session
                copySession(csf.getSelectedProject(), csf.getDestinationProject(), csf.getSelectedCorpus(),
                        csf.getDestinationCorpus(), csf.getSelectedSession(), force);
            }

        });

        JButton cancelButton = new JButton("Cancel");
        cancelButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                dialog.setVisible(false);
                dialog.dispose();
            }

        });

        CellConstraints cc = new CellConstraints();
        dialog.getContentPane().add(header, cc.xyw(1, 1, 2));
        dialog.getContentPane().add(csf, cc.xyw(1, 3, 2));

        dialog.getContentPane().add(ButtonBarBuilder.buildOkCancelBar(okButton, cancelButton), cc.xy(2, 5));

        dialog.getRootPane().setDefaultButton(okButton);

        dialog.pack();
        dialog.setVisible(true);
    } else {
        // we have enough info, don't show dialog
        copySession(project1, project2, corpus1, corpus2, session, force);
    }
}

From source file:ca.phon.app.project.CopySessionForm.java

License:Open Source License

private void init() {
    // setup layout
    FormLayout layout = new FormLayout("5dlu, pref, 3dlu, fill:pref:grow, 5dlu",
            "5dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 5dlu, pref, 3dlu, pref, 3dlu, pref, 5dlu");
    CellConstraints cc = new CellConstraints();

    this.setLayout(layout);

    // create components
    final List<Project> openProjects = Workspace.userWorkspace().getProjects();

    sessionCombo = new JComboBox();

    corpus1Combo = new JComboBox();
    corpus1Combo.addItemListener(new ItemListener() {

        @Override/*  ww w . j a va2 s  .c  o m*/
        public void itemStateChanged(ItemEvent e) {
            fillSessionList();
        }

    });
    corpus2Combo = new JComboBox();

    proj1Combo = new JComboBox(openProjects.toArray());
    proj1Combo.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            fillCorpusList(proj1Combo);
        }

    });
    proj1Combo.setSelectedIndex(0);

    fillCorpusList(proj1Combo);
    fillSessionList();

    proj2Combo = new JComboBox(openProjects.toArray());
    proj2Combo.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            fillCorpusList(proj2Combo);
        }

    });
    proj2Combo.setSelectedIndex(0);

    fillCorpusList(proj2Combo);

    // add components
    this.add(DefaultComponentFactory.getInstance().createSeparator("Selection"), cc.xyw(2, 2, 3));
    this.add(new JLabel("Project"), cc.xy(2, 4));
    this.add(proj1Combo, cc.xy(4, 4));

    this.add(new JLabel("Corpus"), cc.xy(2, 6));
    this.add(corpus1Combo, cc.xy(4, 6));

    this.add(new JLabel("Session"), cc.xy(2, 8));
    this.add(sessionCombo, cc.xy(4, 8));

    this.add(DefaultComponentFactory.getInstance().createSeparator("Destination"), cc.xyw(2, 10, 3));
    this.add(new JLabel("Project"), cc.xy(2, 12));
    this.add(proj2Combo, cc.xy(4, 12));

    this.add(new JLabel("Corpus"), cc.xy(2, 14));
    this.add(corpus2Combo, cc.xy(4, 14));
}

From source file:ca.phon.app.project.mergewizard.MergeSessionStep1.java

License:Open Source License

private void init() {
    setLayout(new BorderLayout());

    header = new DialogHeader("Merge Sessions", "Specify merged session name, corpus, and sessions for merge.");
    add(header, BorderLayout.NORTH);

    FormLayout formLayout = new FormLayout("right:pref, 3dlu, fill:pref:grow", "pref, 3dlu, pref");
    CellConstraints cc = new CellConstraints();

    JPanel namePanel = new JPanel();
    namePanel.setBorder(BorderFactory.createTitledBorder("Session name and corpus"));
    namePanel.setLayout(formLayout);/*from   w ww. ja v  a2  s  .c o  m*/

    sessionNameField = new JTextField();
    sessionNameField.setText(mergedSessionPrefix);
    namePanel.add(new JLabel("Session name"), cc.xy(1, 1));
    namePanel.add(sessionNameField, cc.xy(3, 1));

    corpusNameField = new JTextField();
    corpusNameField.setText(defaultMergeCorpus);
    namePanel.add(new JLabel("Corpus"), cc.xy(1, 3));
    namePanel.add(corpusNameField, cc.xy(3, 3));

    JPanel centerPanel = new JPanel(new BorderLayout());
    centerPanel.add(namePanel, BorderLayout.NORTH);

    JPanel sessionSelectorPanel = new JPanel(new BorderLayout());
    sessionSelectorPanel.setBorder(BorderFactory.createTitledBorder("Selection sessions"));

    sessionSelector = new SessionSelector(project);
    sessionSelectorPanel.add(new JScrollPane(sessionSelector), BorderLayout.CENTER);

    centerPanel.add(sessionSelectorPanel, BorderLayout.CENTER);
    add(centerPanel, BorderLayout.CENTER);
}

From source file:ca.phon.app.project.NewSessionPanel.java

License:Open Source License

/**
 * Adds fill components to empty cells in the first row and first column
 * of the grid. This ensures that the grid spacing will be the same as
 * shown in the designer.// w  w w.  j av a  2s.co m
 * 
 * @param cols
 *            an array of column indices in the first row where fill
 *            components should be added.
 * @param rows
 *            an array of row indices in the first column where fill
 *            components should be added.
 */
void addFillComponents(Container panel, int[] cols, int[] rows) {
    Dimension filler = new Dimension(10, 10);

    boolean filled_cell_11 = false;
    CellConstraints cc = new CellConstraints();
    if (cols.length > 0 && rows.length > 0) {
        if (cols[0] == 1 && rows[0] == 1) {
            /** add a rigid area */
            panel.add(Box.createRigidArea(filler), cc.xy(1, 1));
            filled_cell_11 = true;
        }
    }

    for (int index = 0; index < cols.length; index++) {
        if (cols[index] == 1 && filled_cell_11)
            continue;
        panel.add(Box.createRigidArea(filler), cc.xy(cols[index], 1));
    }

    for (int index = 0; index < rows.length; index++) {
        if (rows[index] == 1 && filled_cell_11)
            continue;
        panel.add(Box.createRigidArea(filler), cc.xy(1, rows[index]));
    }
}

From source file:ca.phon.app.project.NewSessionPanel.java

License:Open Source License

public JPanel createPanel() {
    JPanel jpanel1 = new JPanel();
    FormLayout formlayout1 = new FormLayout("CENTER:25PX:NONE,FILL:DEFAULT:GROW(1.0),CENTER:DEFAULT:NONE",
            "CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:20PX:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:20PX:NONE,CENTER:DEFAULT:NONE");
    CellConstraints cc = new CellConstraints();
    jpanel1.setLayout(formlayout1);/*  w  w  w.  jav a 2  s .  c om*/
    jpanel1.setBorder(new EmptyBorder(5, 5, 5, 5));

    DefaultComponentFactory fac = DefaultComponentFactory.getInstance();

    JComponent titledseparator1 = fac.createSeparator("Step 1");
    jpanel1.add(titledseparator1, cc.xywh(1, 1, 3, 1));

    JComponent titledseparator2 = fac.createSeparator("Step 2");
    jpanel1.add(titledseparator2, cc.xywh(1, 5, 3, 1));

    JLabel jlabel1 = new JLabel();
    jlabel1.setText("Enter a name for the new session:");
    jpanel1.add(jlabel1, cc.xywh(2, 2, 2, 1));

    txtName.setName("txtName");
    jpanel1.add(txtName, cc.xywh(2, 3, 2, 1));

    cmbCorpus.setName("cmbCorpus");
    jpanel1.add(cmbCorpus, cc.xy(2, 7));

    //         ImageFactory imgFactory = ImageFactory.getInstance();
    //         ImageIcon im = new ImageIcon(imgFactory.getImage("new_corpus", 16, 16));
    ImageIcon im = IconManager.getInstance().getIcon("actions/list-add", IconSize.SMALL);
    btnCreateCorpus.setIcon(im);
    btnCreateCorpus.setName("btnCreateCorpus");
    btnCreateCorpus.addActionListener(new CreateCorpusListener());
    jpanel1.add(btnCreateCorpus, cc.xy(3, 7));

    JLabel jlabel2 = new JLabel();
    jlabel2.setText("Select a corpus to use for this session:");
    jpanel1.add(jlabel2, cc.xy(2, 6));

    addFillComponents(jpanel1, new int[] { 2, 3 }, new int[] { 2, 3, 4, 6, 7, 8 });
    return jpanel1;
}

From source file:ca.phon.app.project.ProjectWindow.java

License:Open Source License

private void init() {
    /* Layout *///from ww  w .ja v  a 2  s .  c om
    setLayout(new BorderLayout());

    final ProjectDataTransferHandler transferHandler = new ProjectDataTransferHandler(this);

    /* Create components */
    newCorpusButton = createNewCorpusButton();
    createCorpusButton = createCorpusButton();

    corpusList = new JList<String>();
    corpusModel = new CorpusListModel(getProject());
    corpusList.setModel(corpusModel);
    corpusList.setCellRenderer(new CorpusListCellRenderer());
    corpusList.setVisibleRowCount(20);
    corpusList.addListSelectionListener(e -> {
        if (getSelectedCorpus() != null) {
            String corpus = getSelectedCorpus();
            sessionModel.setCorpus(corpus);
            sessionList.clearSelection();
            corpusDetails.setCorpus(corpus);

            if (getProject().getCorpusSessions(corpus).size() == 0) {
                onSwapNewAndCreateSession(newSessionButton);
            } else {
                onSwapNewAndCreateSession(createSessionButton);
            }
        }
    });
    corpusList.addMouseListener(new MouseInputAdapter() {

        @Override
        public void mousePressed(MouseEvent e) {
            doPopup(e);
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            doPopup(e);
        }

        public void doPopup(MouseEvent e) {
            if (e.isPopupTrigger()) {
                int clickedIdx = corpusList.locationToIndex(e.getPoint());
                if (clickedIdx >= 0 && Arrays.binarySearch(corpusList.getSelectedIndices(), clickedIdx) < 0) {
                    corpusList.setSelectedIndex(clickedIdx);
                }
                showCorpusListContextMenu(e.getPoint());
            }
        }
    });

    final DragSource corpusDragSource = new DragSource();
    corpusDragSource.createDefaultDragGestureRecognizer(corpusList, DnDConstants.ACTION_COPY, (event) -> {
        final List<ProjectPath> paths = new ArrayList<>();
        for (String corpus : getSelectedCorpora()) {
            final ProjectPath corpusPath = new ProjectPath(getProject(), corpus, null);
            paths.add(corpusPath);
        }
        final ProjectPathTransferable transferable = new ProjectPathTransferable(paths);
        event.startDrag(DragSource.DefaultCopyDrop, transferable);
    });

    corpusList.setDragEnabled(true);
    corpusList.setTransferHandler(transferHandler);

    corpusDetails = new CorpusDetailsPane(getProject());
    corpusDetails.setWrapStyleWord(true);
    corpusDetails.setRows(6);
    corpusDetails.setLineWrap(true);
    corpusDetails.setBackground(Color.white);
    corpusDetails.setOpaque(true);
    JScrollPane corpusDetailsScroller = new JScrollPane(corpusDetails);

    sessionList = new JList<String>();
    newSessionButton = createNewSessionButton();
    createSessionButton = createSessionButton();
    sessionModel = new SessionListModel(getProject());
    sessionList.setModel(sessionModel);
    sessionList.setCellRenderer(new SessionListCellRenderer());
    sessionList.setVisibleRowCount(20);
    sessionList.addListSelectionListener(e -> {
        if (sessionList.getSelectedValue() != null && !e.getValueIsAdjusting()) {
            String corpus = getSelectedCorpus();
            String session = getSelectedSessionName();

            sessionDetails.setSession(corpus, session);
        }
    });
    sessionList.addMouseListener(new MouseInputAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2 && e.getButton() == 1) {
                // get the clicked item
                int clickedItem = sessionList.locationToIndex(e.getPoint());
                if (sessionList.getModel().getElementAt(clickedItem) == null)
                    return;

                final String session = sessionList.getModel().getElementAt(clickedItem).toString();
                final String corpus = ((SessionListModel) sessionList.getModel()).getCorpus();

                msgPanel.reset();
                msgPanel.setMessageLabel("Opening '" + corpus + "." + session + "'");
                msgPanel.setIndeterminate(true);
                msgPanel.repaint();

                SwingUtilities.invokeLater(() -> {
                    final ActionEvent ae = new ActionEvent(sessionList, -1, "openSession");
                    (new OpenSessionAction(ProjectWindow.this, corpus, session)).actionPerformed(ae);

                    msgPanel.setIndeterminate(false);
                });
            }
        }

        @Override
        public void mousePressed(MouseEvent e) {
            doPopup(e);
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            doPopup(e);
        }

        public void doPopup(MouseEvent e) {
            if (e.isPopupTrigger()) {
                int clickedIdx = sessionList.locationToIndex(e.getPoint());
                if (clickedIdx >= 0 && Arrays.binarySearch(sessionList.getSelectedIndices(), clickedIdx) < 0) {
                    sessionList.setSelectedIndex(clickedIdx);
                }
                showSessionListContextMenu(e.getPoint());
            }
        }
    });

    sessionList.setDragEnabled(true);
    sessionList.setTransferHandler(transferHandler);

    final DragSource sessionDragSource = new DragSource();
    sessionDragSource.createDefaultDragGestureRecognizer(sessionList, DnDConstants.ACTION_COPY, (event) -> {
        final List<ProjectPath> paths = new ArrayList<>();
        final String corpus = getSelectedCorpus();
        if (corpus == null)
            return;
        for (String session : getSelectedSessionNames()) {
            final ProjectPath sessionPath = new ProjectPath(getProject(), corpus, session);
            paths.add(sessionPath);
        }
        final ProjectPathTransferable transferable = new ProjectPathTransferable(paths);
        event.startDrag(DragSource.DefaultCopyDrop, transferable);
    });

    sessionDetails = new SessionDetailsPane(getProject());
    sessionDetails.setLineWrap(true);
    sessionDetails.setRows(6);
    sessionDetails.setWrapStyleWord(true);
    sessionDetails.setBackground(Color.white);
    sessionDetails.setOpaque(true);
    JScrollPane sessionDetailsScroller = new JScrollPane(sessionDetails);

    JScrollPane corpusScroller = new JScrollPane(corpusList);
    JScrollPane sessionScroller = new JScrollPane(sessionList);

    blindModeBox = new JCheckBox("Blind transcription");
    blindModeBox.setSelected(false);

    msgPanel = new StatusPanel();

    corpusPanel = new JPanel(new BorderLayout());
    corpusPanel.add(newCorpusButton, BorderLayout.NORTH);
    corpusPanel.add(corpusScroller, BorderLayout.CENTER);
    corpusPanel.add(corpusDetailsScroller, BorderLayout.SOUTH);

    sessionPanel = new JPanel(new BorderLayout());
    sessionPanel.add(newSessionButton, BorderLayout.NORTH);
    sessionPanel.add(sessionScroller, BorderLayout.CENTER);
    sessionPanel.add(sessionDetailsScroller, BorderLayout.SOUTH);

    final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPane.setLeftComponent(corpusPanel);
    splitPane.setRightComponent(sessionPanel);
    splitPane.setResizeWeight(0.5);

    // invoke later
    SwingUtilities.invokeLater(() -> {
        splitPane.setDividerLocation(0.5);
    });

    // the frame layout
    String projectName = null;
    projectName = getProject().getName();

    DialogHeader header = new DialogHeader(projectName, StringUtils.abbreviate(projectLoadPath, 80));

    add(header, BorderLayout.NORTH);

    CellConstraints cc = new CellConstraints();
    final JPanel topPanel = new JPanel(new FormLayout("pref, fill:pref:grow, right:pref", "pref"));
    topPanel.add(msgPanel, cc.xy(1, 1));
    topPanel.add(blindModeBox, cc.xy(3, 1));

    add(splitPane, BorderLayout.CENTER);
    add(topPanel, BorderLayout.SOUTH);

    // if no corpora are currently available, 'prompt' the user to create a new one
    if (getProject().getCorpora().size() == 0) {
        SwingUtilities.invokeLater(() -> {
            onSwapNewAndCreateCorpus(newCorpusButton);
        });
    } else {
        SwingUtilities.invokeLater(() -> {
            corpusList.setSelectedIndex(0);
        });
    }
}

From source file:ca.phon.app.query.EditQueryPanel.java

License:Open Source License

private void init() {
    final FormLayout layout = new FormLayout("right:pref, 3dlu, fill:pref:grow",
            "pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, fill:pref:grow");
    final CellConstraints cc = new CellConstraints();
    setLayout(layout);/* w ww.  ja  va 2  s.c om*/

    starBox = new StarBox(IconSize.SMALL);
    starBox.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            if (getQuery() != null) {
                getQuery().setStarred(starBox.isSelected());
            }
        }
    });

    queryNameField = new JTextField();
    queryNameField.selectAll();
    queryNameField.requestFocusInWindow();
    queryNameField.getDocument().addDocumentListener(new DocumentListener() {

        @Override
        public void removeUpdate(DocumentEvent e) {
            updateName();
        }

        @Override
        public void insertUpdate(DocumentEvent e) {
            updateName();
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
        }

        private void updateName() {
            if (getQuery() != null)
                getQuery().setName(queryNameField.getText());
        }
    });

    queryCommentsArea = new JTextArea();
    queryCommentsArea.setRows(5);
    queryCommentsArea.getDocument().addDocumentListener(new DocumentListener() {

        @Override
        public void removeUpdate(DocumentEvent e) {
            updateComments();
        }

        @Override
        public void insertUpdate(DocumentEvent e) {
            updateComments();
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
        }

        private void updateComments() {
            if (getQuery() != null)
                getQuery().setComments(queryCommentsArea.getText());
        }
    });

    uuidLabel = new JLabel();

    dateLabel = new JLabel();

    add(starBox, cc.xy(1, 1));
    add(queryNameField, cc.xy(3, 1));

    add(new JLabel("UUID:"), cc.xy(1, 3));
    add(uuidLabel, cc.xy(3, 3));

    add(new JLabel("Date:"), cc.xy(1, 5));
    add(dateLabel, cc.xy(3, 5));

    add(new JLabel("Comments:"), cc.xy(1, 7));
    add(new JScrollPane(queryCommentsArea), cc.xywh(3, 7, 1, 2));
}

From source file:ca.phon.app.query.QueryEditorWindow.java

License:Open Source License

private JComponent createForm() {
    JComponent retVal = new JPanel();
    retVal.setLayout(new BorderLayout());

    ImageIcon saveIcon = IconManager.getInstance().getIcon("actions/document-save", IconSize.SMALL);
    saveButton = new JButton(saveIcon);
    saveButton.setToolTipText("Save script");
    saveButton.putClientProperty("JButton.buttonType", "textured");
    saveButton.addActionListener(new ActionListener() {

        @Override// w ww  .  ja v  a2s.co  m
        public void actionPerformed(ActionEvent e) {
            if (getCurrentFile() != null) {
                saveScriptToFile(getCurrentFile());
            } else {
                saveScriptAs();
            }
        }

    });

    ImageIcon saveAsIcon = IconManager.getInstance().getIcon("actions/document-save-as", IconSize.SMALL);
    saveAsButton = new JButton(saveAsIcon);
    saveAsButton.setToolTipText("Save script as...");
    saveAsButton.putClientProperty("JButton.buttonType", "textured");
    saveAsButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            saveScriptAs();
        }

    });

    ImageIcon openIcon = IconManager.getInstance().getIcon("actions/document-open", IconSize.SMALL);
    openButton = new JButton(openIcon);
    openButton.setToolTipText("Open script");
    openButton.putClientProperty("JButton.buttonType", "textured");
    openButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Runnable run = new Runnable() {
                @Override
                public void run() {
                    openScript();
                }
            };
            PhonWorker.getInstance().invokeLater(run);
        }
    });

    final JToolBar toolBar = new JToolBar();
    //      toolBar.disableBackgroundPainter();
    toolBar.setFloatable(false);
    toolBar.add(openButton);
    toolBar.add(saveButton);
    toolBar.add(saveAsButton);
    //      toolBar.addComponentToLeft(openButton);
    //      toolBar.addComponentToLeft(saveButton);
    //      toolBar.addComponentToLeft(saveAsButton);

    FormLayout bottomLayout = new FormLayout("left:pref, fill:pref:grow, right:pref", "pref, pref");

    JPanel bottomPanel = new JPanel();
    bottomPanel.setLayout(bottomLayout);

    includeExcludedBox = new JCheckBox("Include excluded records");

    positionLabel = new JLabel();
    positionLabel.setFont(positionLabel.getFont().deriveFont(10.0f));

    execButton = new JButton("Run Query");
    execButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            onRunQuery();
        }

    });
    getRootPane().setDefaultButton(execButton);

    CellConstraints cc = new CellConstraints();

    bottomPanel.add(positionLabel, cc.xy(1, 1));
    bottomPanel.add(includeExcludedBox, cc.xy(1, 2));
    bottomPanel.add(execButton, cc.xy(3, 2));

    final JPanel editorPanel = new JPanel(new BorderLayout());
    editorPanel.add(toolBar, BorderLayout.NORTH);
    editorPanel.add(scriptEditor, BorderLayout.CENTER);
    editorPanel.add(bottomPanel, BorderLayout.SOUTH);

    editorTabs = new JTabbedPane();
    final QueryScript script = (QueryScript) scriptEditor.getScript();
    final QueryName queryName = script.getExtension(QueryName.class);
    final String name = (queryName != null ? queryName.getName() : "untitled");
    editorTabs.add("Script : " + name, editorPanel);

    retVal.add(editorTabs, BorderLayout.CENTER);
    return retVal;
}

From source file:ca.phon.app.query.QueryHistory.java

License:Open Source License

private void init() {
    setLayout(new BorderLayout());

    final Project project = getProject();
    header = new DialogHeader("Query History", project.getName());

    queryModel = new QueryHistoryTableModel(project);
    queryTable = new JXTable(queryModel);
    queryRowSorter = new TableRowSorter<QueryHistoryTableModel>(queryModel);
    final RowSorter.SortKey sortKey = new RowSorter.SortKey(QueryHistoryTableModel.Columns.Date.ordinal(),
            SortOrder.ASCENDING);
    queryRowSorter.setSortKeys(Collections.singletonList(sortKey));
    queryRowSorter.setSortsOnUpdates(true);
    queryTable.setRowSorter(queryRowSorter);
    queryTable.addHighlighter(HighlighterFactory.createSimpleStriping());
    queryTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    queryTable.addKeyListener(new KeyListener() {

        @Override/*from  www  .  ja  va2 s.c  om*/
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_DELETE || e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
                int selectedRow = queryTable.getSelectedRow();
                if (selectedRow < 0)
                    return;
                selectedRow = queryTable.convertRowIndexToModel(selectedRow);
                Query q = queryModel.getQueryForRow(selectedRow);
                if (q != null) {
                    deleteQuery(q);
                }
                e.consume();
            }
        }

        @Override
        public void keyReleased(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {

        }

    });
    queryTable.addMouseListener(new MouseInputAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.isPopupTrigger()) {
                showQueryContextMenu(e.getPoint());
            }
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            showMenu(e);
        }

        @Override
        public void mousePressed(MouseEvent e) {
            showMenu(e);
        }

        private void showMenu(MouseEvent e) {
            if (e.isPopupTrigger()) {
                int selectedRow = queryTable.rowAtPoint(e.getPoint());
                if (selectedRow < 0)
                    return;
                queryTable.getSelectionModel().setSelectionInterval(selectedRow, selectedRow);
                selectedRow = queryTable.convertRowIndexToModel(selectedRow);
                //               if(selectedRow >= 0 && selectedRow < queryTable.getModel().r)
                showQueryContextMenu(e.getPoint());
            }
            super.mousePressed(e);
        }

    });

    queryTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting())
                return;
            int selectedRow = queryTable.getSelectedRow();
            if (selectedRow < 0)
                return;
            selectedRow = queryTable.convertRowIndexToModel(selectedRow);
            final Query q = queryModel.getQueryForRow(selectedRow);
            if (q != null) {
                final Runnable update = new Runnable() {
                    public void run() {
                        updateWindow(q);
                    }
                };
                SwingUtilities.invokeLater(update);
            }
        }

    });

    queryTable.getColumn(QueryHistoryTableModel.Columns.Date.ordinal()).setCellRenderer(new DateRenderer());
    //      queryTable.getColumn(QueryHistoryTableModel.Columns.Starred.ordinal()).setCellRenderer(
    //            new StarRenderer());
    queryTable.setColumnControlVisible(true);
    queryModel.update();

    tblSearchField = new TableSearchField(queryTable, false);
    tblSearchField.addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            tblSearchField.updateTableFilter();
        }

        @Override
        public void keyPressed(KeyEvent e) {
        }
    });

    infoPanel = new QueryInfoPanel(project);

    ImageIcon refreshIcon = IconManager.getInstance().getIcon("actions/reload", IconSize.SMALL);
    PhonUIAction refreshAct = new PhonUIAction(queryModel, "update");
    refreshAct.putValue(PhonUIAction.SMALL_ICON, refreshIcon);
    refreshAct.putValue(PhonUIAction.SHORT_DESCRIPTION, "Refresh query table");
    refreshButton = new JButton(refreshAct);

    onlyStarredBox = new StarBox(IconSize.SMALL);
    onlyStarredBox.setToolTipText("Only show starred queries");
    onlyStarredBox.setSelected(false);
    onlyStarredBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            queryModel.setStarredOnly(onlyStarredBox.isSelected());
            queryModel.update();
        }
    });

    FormLayout filterLayout = new FormLayout("pref, fill:pref:grow, pref", "pref");
    CellConstraints cc = new CellConstraints();
    JPanel filterPanel = new JPanel(filterLayout);

    filterPanel.add(tblSearchField, cc.xy(2, 1));
    filterPanel.add(onlyStarredBox, cc.xy(1, 1));
    filterPanel.add(refreshButton, cc.xy(3, 1));

    JPanel leftPanel = new JPanel(new BorderLayout());
    leftPanel.add(filterPanel, BorderLayout.NORTH);
    leftPanel.add(new JScrollPane(queryTable), BorderLayout.CENTER);

    JSplitPane splitPane = new JSplitPane();
    splitPane.setLeftComponent(leftPanel);
    splitPane.setRightComponent(infoPanel);
    splitPane.setOneTouchExpandable(true);

    add(header, BorderLayout.NORTH);
    add(splitPane, BorderLayout.CENTER);
}