List of usage examples for com.jgoodies.forms.layout CellConstraints CellConstraints
public CellConstraints()
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); }