List of usage examples for com.jgoodies.forms.layout CellConstraints xyw
public CellConstraints xyw(int col, int row, int colSpan)
Examples:
cc.xyw(1, 3, 7); cc.xyw(1, 3, 2);
From source file:net.pms.medialibrary.gui.dialogs.ConditionsViewer.java
License:Open Source License
public ConditionsViewer(DOFilter filter, String folderName, Dialog owner) { super(owner, true); setTitle(String.format(Messages.getString("ML.ConditionsViewer.Title"), folderName)); setResizable(false);//from w w w . j ava2s.c o m PanelBuilder builder; CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout("5px, r:p, 20px, p, 20px, p, 20px, p, 5px", // columns "10px, p, p, p, p, p, p, p, p, p, p, " + "p, p, p, p, p, p, p, p, p, p, " + "p, p, p, p, p, p, p, p, p, p, " + "p, p, p, p, p, p, p, p, p, p, 5px, p, 2px, p, p"); // rows builder = new PanelBuilder(layout); builder.setOpaque(true); //add conditions int i = 2; for (DOCondition c : filter.getConditions()) { String coString; if (c.getType() == ConditionType.FILE_CONTAINS_TAG) { //add the tag name if required coString = String.format("'%s' %s", c.getTagName(), Messages.getString("ML.Condition.Operator.Contains." + c.getOperator().toString())); } else if (c.getType().toString().contains("_CONTAINS_")) { //do a certain mapping for some condition types coString = Messages.getString("ML.Condition.Operator.Contains." + c.getOperator().toString()); } else { //normal behavior coString = Messages.getString("ML.Condition.Operator." + c.getOperator().toString()); } builder.addLabel(c.getName(), cc.xy(2, i)); builder.addLabel(FolderHelper.getHelper().getConditionTypeCBItem(c.getType()).getDisplayName(), cc.xy(4, i)); builder.addLabel(coString, cc.xy(6, i)); String cStr = c.getCondition(); if (c.getUnit() != ConditionUnit.UNKNOWN) { cStr += " " + FolderHelper.getHelper().getConditionUnitCBItem(c.getUnit()).getDisplayName(); } builder.addLabel(cStr, cc.xy(8, i)); i++; } //add equation JTextField tfEq = new JTextField(filter.getEquation()); tfEq.setEditable(false); builder.add(tfEq, cc.xyw(2, 43, 7)); //add button JButton bOk = new JButton(Messages.getString("ML.ConditionsViewer.bOk")); if (bOk.getPreferredSize().width < 60) bOk.setPreferredSize(new Dimension(60, bOk.getPreferredSize().height)); bOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }); builder.addSeparator("", cc.xyw(1, 45, 9)); builder.add(bOk, cc.xyw(1, 46, 9, CellConstraints.CENTER, CellConstraints.FILL)); getContentPane().add(builder.getPanel()); pack(); }
From source file:net.pms.medialibrary.gui.dialogs.fileeditdialog.FileEditDialog.java
License:Open Source License
/** * Initializes the UI components and builds the panel *//*from w w w. j ava 2s. c o m*/ private void build() { init(); //build the panel PanelBuilder builder; CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout("3px, d, 3px, d, fill:10:grow, d, 30px, d, 3px, d, 3px", // columns "3px, fill:10:grow, 3px, p, 3px"); // rows builder = new PanelBuilder(layout); builder.setOpaque(true); builder.add(tpFileEdit, cc.xyw(2, 2, 9)); if (editMode == EditMode.Linked) { builder.add(bPrevious, cc.xy(2, 4)); builder.add(bNext, cc.xy(4, 4)); builder.add(bImportWithPlugin, cc.xy(6, 4)); } else if (editMode == EditMode.Single) { builder.add(bImportWithPlugin, cc.xy(6, 4)); } builder.add(bOk, cc.xy(8, 4)); builder.add(bCancel, cc.xy(10, 4)); getContentPane().add(builder.getPanel()); refreshButtonStates(); }
From source file:net.pms.medialibrary.gui.dialogs.fileeditdialog.panels.VideoFileInfoPanel.java
License:Open Source License
@Override public void build() { setLayout(new GridLayout()); PanelBuilder builder;/* w w w . j a v a 2 s . c o m*/ CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout("3px, d, 5px, fill:20:grow, 3px", // columns "5px, d, 5px, fill:20:grow, 3px"); // rows builder = new PanelBuilder(layout); builder.setOpaque(true); //Add title JLabel lTitle = new JLabel(fileInfo.getName()); lTitle.setFont(lTitle.getFont().deriveFont(lTitle.getFont().getStyle(), lTitle.getFont().getSize() + 3)); builder.add(lTitle, cc.xyw(2, 2, 3)); // Add cover lCoverTransferHandler = new FileCoverTransferHandler(); lCoverTransferHandler.addCoverChangedListeners(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { try { videoCoverImage = new ImageIcon(ImageIO.read(new File(lCoverTransferHandler.getCoverPath()))); resizeCover(); } catch (IOException e) { log.error("Failed to load cover from " + lCoverTransferHandler.getCoverPath(), e); } } }); lCover = new JLabel(); lCover.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); lCover.setTransferHandler(lCoverTransferHandler); lCover.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) { //show full size image in modal dialog on left mouse click ImageViewer iv = new ImageViewer(videoCoverImage, fileInfo.getName()); iv.setModal(true); iv.setLocation(GUIHelper.getCenterDialogOnParentLocation(iv.getSize(), lCover)); iv.setVisible(true); } else if (e.getButton() == MouseEvent.BUTTON3) { //TODO: show context menu on right mouse click } } }); File imageFile = new File(fileInfo.getThumbnailPath()); if (imageFile.isFile()) { //show the cover if it exists try { videoCoverImage = new ImageIcon(ImageIO.read(new File(imageFile.getAbsolutePath()))); lCoverTransferHandler.setCoverPath(imageFile.getAbsolutePath()); } catch (IOException e) { log.error("Failed to load cover from " + imageFile.getAbsolutePath(), e); } } addComponentListener(new ComponentAdapter() { @Override public void componentShown(ComponentEvent arg0) { resizeCover(lCover.getHeight()); } @Override public void componentResized(ComponentEvent e) { resizeCover(lCover.getHeight()); } }); builder.add(lCover, cc.xy(2, 4)); //Add informations builder.add(getInformationsPanel(fileInfo), cc.xy(4, 4)); add(builder.getPanel()); resizeCover(); }
From source file:net.pms.medialibrary.gui.dialogs.fileeditdialog.panels.VideoFileInfoPanel.java
License:Open Source License
private Component getInformationsPanel(DOVideoFileInfo fileInfo) { PanelBuilder builder;/*from w w w . ja v a 2s.c o m*/ CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout("3px, r:p, 7px, p, 40px, r:p, 7px, fill:p:grow, 3px", // columns "3px, p, 3px, p, 3px, p, 3px, p, 3px, p, 15px, p, 3px, p, 3px, p, 3px, p, 3px, p, 7px, p, 3px, p, 3px"); // rows builder = new PanelBuilder(layout); builder.setOpaque(true); //add file properties JComponent cmp = builder.addSeparator(Messages.getString("ML.VideoFileInfoPanel.lFileProperties"), cc.xyw(2, 2, 7)); cmp = (JComponent) cmp.getComponent(0); cmp.setFont(cmp.getFont().deriveFont(Font.BOLD)); builder.add(new JHeader(Messages.getString("ML.Condition.Type.FILE_SIZEBYTE") + ":"), cc.xy(2, 4)); builder.addLabel( (fileInfo.getSize() / (1024 * 1024)) + Messages.getString("ML.Condition.Unit.FILESIZE_MEGABYTE"), cc.xy(4, 4)); builder.add(new JHeader(ConditionType.FILE_DATEINSERTEDDB), cc.xy(6, 4)); builder.addLabel(new SimpleDateFormat().format(fileInfo.getDateInsertedDb()), cc.xy(8, 4)); builder.add(new JHeader(ConditionType.FILEPLAYS_DATEPLAYEND), cc.xy(2, 6)); builder.addLabel(fileInfo.getPlayHistory().size() > 0 ? new SimpleDateFormat().format(fileInfo.getPlayHistory().get(0)) : Messages.getString("ML.Condition.NeverPlayed"), cc.xy(4, 6)); builder.add(new JHeader(ConditionType.FILE_DATELASTUPDATEDDB), cc.xy(6, 6)); builder.addLabel(new SimpleDateFormat().format(fileInfo.getDateLastUpdatedDb()), cc.xy(8, 6)); builder.add(new JHeader(ConditionType.FILE_PLAYCOUNT), cc.xy(2, 8)); builder.addLabel(String.valueOf(fileInfo.getPlayCount()), cc.xy(4, 8)); builder.add(new JHeader(Messages.getString("ML.VideoFileInfoPanel.lFilePath")), cc.xy(2, 10)); builder.addLabel(fileInfo.getFilePath(), cc.xyw(4, 10, 5)); //add video properties cmp = builder.addSeparator(Messages.getString("ML.VideoFileInfoPanel.lVideoProperties"), cc.xyw(2, 12, 7)); cmp = (JComponent) cmp.getComponent(0); cmp.setFont(cmp.getFont().deriveFont(Font.BOLD)); builder.add(new JHeader(ConditionType.VIDEO_DURATIONSEC), cc.xy(2, 14)); builder.addLabel(DLNAHelper.formatSecToHHMMSS((int) fileInfo.getDurationSec()), cc.xy(4, 14)); builder.add(new JHeader(Messages.getString("ML.VideoFileInfoPane.lResolution")), cc.xy(6, 14)); builder.addLabel(String.format("%sx%s", fileInfo.getWidth(), fileInfo.getHeight()), cc.xy(8, 14)); builder.add(new JHeader(ConditionType.VIDEO_CODECV), cc.xy(2, 16)); builder.addLabel(fileInfo.getCodecV(), cc.xy(4, 16)); builder.add(new JHeader(ConditionType.VIDEO_CONTAINER), cc.xy(6, 16)); builder.addLabel(fileInfo.getContainer(), cc.xy(8, 16)); builder.add(new JHeader(ConditionType.VIDEO_BITRATE), cc.xy(2, 18)); builder.addLabel(String.valueOf(fileInfo.getBitrate() / 1024) + " kbit/s", cc.xy(4, 18)); builder.add(new JHeader(ConditionType.VIDEO_MIMETYPE), cc.xy(6, 18)); builder.addLabel(fileInfo.getMimeType(), cc.xy(8, 18)); builder.add(new JHeader(ConditionType.VIDEO_FRAMERATE), cc.xy(2, 20)); builder.addLabel(fileInfo.getFrameRate(), cc.xy(4, 20)); builder.add(new JHeader(ConditionType.VIDEO_CONTAINS_VIDEOAUDIO), cc.xy(2, 22)); builder.addLabel(fileInfo.getDisplayString("%audio_languages"), cc.xyw(4, 22, 5)); builder.add(new JHeader(ConditionType.VIDEO_CONTAINS_SUBTITLES), cc.xy(2, 24)); builder.addLabel(fileInfo.getDisplayString("%subtitle_languages"), cc.xyw(4, 24, 5)); JScrollPane sp = new JScrollPane(builder.getPanel()); sp.setBorder(BorderFactory.createEmptyBorder()); return sp; }
From source file:net.pms.medialibrary.gui.dialogs.fileeditdialog.panels.VideoFilePropertiesPanel.java
License:Open Source License
public void build() { //reset the sizes of all text fields to lay them out correctly when resizing //otherwise, scroll bars will show up if the dialog size is being reduced taOverview.setSize(new Dimension(10, 10)); //build the panel PanelBuilder builder;//w w w . j a v a 2 s .com CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout( "5px, 20:grow, 10px, 20:grow, 10px, 20:grow, 10px, 20:grow, 10px, d, 5px", // columns "3px, d, 3px, d, 3px, d, 3px, d, 3px, d, 3px, d, 3px, d, 5px, d, 3px"); // rows builder = new PanelBuilder(layout); builder.setOpaque(true); //row 1 builder.add(hName, cc.xyw(2, 2, 3)); builder.add(hOriginalName, cc.xyw(6, 2, 3)); builder.add(hYear, cc.xy(10, 2)); //row 2 builder.add(hSortName, cc.xyw(2, 4, 3)); builder.add(hDirector, cc.xyw(6, 4, 3)); builder.add(hImdbId, cc.xy(10, 4)); //row 3 builder.add(hHomePage, cc.xyw(2, 6, 3)); builder.add(hTrailer, cc.xyw(6, 6, 3)); builder.add(hTmdbId, cc.xy(10, 6)); //row 4 builder.add(hRating, cc.xy(2, 8)); builder.add(hRatingVoters, cc.xy(4, 8)); builder.add(hCertificationReason, cc.xyw(6, 8, 3)); builder.add(hCertification, cc.xy(10, 8)); //row 5 builder.add(hTagLine, cc.xyw(2, 10, 7)); builder.add(hBudget, cc.xy(10, 10)); //row 6+7 JPanel pOverviewHeader = new JPanel(new GridLayout()); pOverviewHeader.setAlignmentY(LEFT_ALIGNMENT); pOverviewHeader.add(hOverview); JScrollPane spOverview = new JScrollPane(taOverview); spOverview.setBorder(new JTextField().getBorder()); JPanel pOverview = new JPanel(new BorderLayout(0, 1)); pOverview.add(pOverviewHeader, BorderLayout.NORTH); pOverview.add(spOverview, BorderLayout.CENTER); builder.add(pOverview, cc.xywh(2, 12, 7, 3)); builder.add(hRevenue, cc.xy(10, 12)); builder.add(cbActive, cc.xy(10, 14)); //row 8 builder.add(pGenres, cc.xyw(2, 16, 9)); JPanel p = builder.getPanel(); JScrollPane sp = new JScrollPane(p); sp.setBorder(BorderFactory.createEmptyBorder()); removeAll(); add(sp); }
From source file:net.pms.medialibrary.gui.dialogs.FileEntryPluginDialog.java
License:Open Source License
private void refreshDialog() { FormLayout layout = new FormLayout("3px, p, 3px, p:grow , 3px", "3px, p, 3px, p, 3px, fill:p:grow, 3px, p, 3px, p, 3px"); PanelBuilder builder = new PanelBuilder(layout); builder.setOpaque(true);/*from ww w .java 2s . co m*/ CellConstraints cc = new CellConstraints(); builder.addLabel(Messages.getString("ML.SpecialFolderDialog.lName"), cc.xy(2, 2)); builder.add(tfName, cc.xy(4, 2)); builder.addSeparator("", cc.xyw(2, 4, 3)); builder.add(getPluginEntry().getPlugin().getConfigurationPanel(), cc.xyw(2, 6, 3)); builder.addSeparator("", cc.xyw(2, 8, 3)); builder.add(pButtons, cc.xyw(2, 10, 3)); getContentPane().removeAll(); getContentPane().add(builder.getPanel()); validate(); }
From source file:net.pms.medialibrary.gui.dialogs.FileUpdateWithPluginDialog.java
License:Open Source License
private void build() { FormLayout layout = new FormLayout("5px, r:p, 5px, p, 5px, f:p:g, 5px", "5px, p, 5px, p, 5px, p, 5px, p, 5px, f:80:g, 5px, p, 5px"); PanelBuilder builder = new PanelBuilder(layout); builder.setOpaque(true);//from w ww. j a v a 2 s . c o m CellConstraints cc = new CellConstraints(); builder.addLabel(Messages.getString("ML.FileUpdateWithPluginDialog.lImportBy"), cc.xy(2, 2)); builder.add(rbName, cc.xy(4, 2)); builder.add(rbId, cc.xy(6, 2)); builder.addLabel(Messages.getString("ML.FileUpdateWithPluginDialog.lPlugin"), cc.xy(2, 4)); builder.add(cbPlugins, cc.xyw(4, 4, 3)); builder.add(lValueHeader, cc.xy(2, 6)); builder.add(tfValue, cc.xyw(4, 6, 3)); builder.addLabel(Messages.getString("ML.FileUpdateWithPluginDialog.lResults"), cc.xyw(2, 8, 5, CellConstraints.LEFT, CellConstraints.DEFAULT)); JPanel pResults = new JPanel(new BorderLayout()); pResults.setBorder(BorderFactory.createLineBorder(Color.lightGray)); JPanel pResultsFiller = new JPanel(); pResultsFiller.setBackground(lResults.getBackground()); pResults.add(lResults, BorderLayout.NORTH); pResults.add(pResultsFiller, BorderLayout.CENTER); JScrollPane spResults = new JScrollPane(pResults); spResults.setBorder(BorderFactory.createEmptyBorder()); builder.add(spResults, cc.xyw(2, 10, 5)); builder.add(pButtons, cc.xyw(2, 12, 5)); add(builder.getPanel()); }
From source file:net.pms.medialibrary.gui.dialogs.folderdialog.FolderDialog.java
License:Open Source License
private void rebuildPanel() { PanelBuilder builder;/* w w w.ja v a2 s . co m*/ CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout("3px, p, 3px, p, p:grow, p, 3px, p, 3px, p, 3px", // columns "10px, p, 10px, fill:p:grow, p, 3px"); // raws builder = new PanelBuilder(layout); builder.setOpaque(true); //Name & Filter Type builder.add(lName, cc.xy(2, 2)); builder.add(tfName, cc.xy(4, 2)); builder.add(lFolderType, cc.xy(6, 2)); builder.add(cbFileType, cc.xy(8, 2)); builder.addSeparator("", cc.xyw(2, 3, 9)); builder.add(tabs, cc.xyw(2, 4, 9)); builder.add(pButtons, cc.xyw(2, 5, 9)); getContentPane().removeAll(); getContentPane().add(builder.getPanel()); }
From source file:net.pms.medialibrary.gui.dialogs.PluginFolderDialog.java
License:Open Source License
private void refreshDialog() { FormLayout layout = new FormLayout("3px, p, 3px, p:grow , 3px", "3px, p, 3px, p, 3px, fill:p:grow, 3px, p, 3px, p, 3px"); PanelBuilder builder = new PanelBuilder(layout); builder.setOpaque(true);//from w w w . j av a 2s . c o m CellConstraints cc = new CellConstraints(); builder.addLabel(Messages.getString("ML.SpecialFolderDialog.lName"), cc.xy(2, 2)); builder.add(tfName, cc.xy(4, 2)); builder.addSeparator("", cc.xyw(2, 4, 3)); builder.add(getSpecialFolder().getSpecialFolderImplementation().getInstanceConfigurationPanel(), cc.xyw(2, 6, 3)); builder.addSeparator("", cc.xyw(2, 8, 3)); builder.add(pButtons, cc.xyw(2, 10, 3)); getContentPane().removeAll(); getContentPane().add(builder.getPanel()); validate(); }
From source file:net.pms.medialibrary.gui.dialogs.ScanFolderDialog.java
License:Open Source License
private void build(String folderPath) { FormLayout layout = new FormLayout("5px, p, 5px, fill:p:grow, 5px, p, 5px, p, 5px", "p, 2px, p, 5px, p, 2px, p"); PanelBuilder builder = new PanelBuilder(layout); builder.setOpaque(true);/*from w ww. j a v a 2 s .c om*/ CellConstraints cc = new CellConstraints(); // line 1 builder.addLabel(Messages.getString("ML.ScanFolderDialog.lFolderPath"), cc.xy(2, 1, CellConstraints.RIGHT, CellConstraints.DEFAULT)); tfFolderPath = new JTextField(folderPath); tfFolderPath.setMinimumSize(new Dimension(300, tfFolderPath.getPreferredSize().height)); builder.add(tfFolderPath, cc.xy(4, 1)); bBrowseFolderPath = new JButton(Messages.getString("ML.ScanFolderDialog.bBrowse")); bBrowseFolderPath.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { JFileChooser fc = new JFileChooser(bBrowseFolderPath.getText()); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { tfFolderPath.setText(fc.getSelectedFile().getAbsolutePath()); } } }); builder.add(bBrowseFolderPath, cc.xy(6, 1)); cbScanSubFolders = new JCheckBox(Messages.getString("ML.ScanFolderDialog.cbScanSubFolders")); cbScanSubFolders.setSelected(true); builder.add(cbScanSubFolders, cc.xy(8, 1)); // line 2 builder.addLabel(Messages.getString("ML.ScanFolderDialog.lLookFor"), cc.xy(2, 3, CellConstraints.RIGHT, CellConstraints.DEFAULT)); JPanel pFileTypes = new JPanel(new FlowLayout()); cbScanVideo = new JCheckBox(Messages.getString("ML.ScanFolderDialog.cbScanVideo"), true); pFileTypes.add(cbScanVideo); cbScanAudio = new JCheckBox(Messages.getString("ML.ScanFolderDialog.cbScanAudio"), true); pFileTypes.add(cbScanAudio); cbScanPictures = new JCheckBox(Messages.getString("ML.ScanFolderDialog.cbScanPictures"), true); pFileTypes.add(cbScanPictures); builder.add(pFileTypes, cc.xy(4, 3, CellConstraints.LEFT, CellConstraints.DEFAULT)); cbUseFileImportPlugins = new JCheckBox(Messages.getString("ML.ScanFolderDialog.cbUsePlugins")); cbUseFileImportPlugins.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (cbUseFileImportPlugins.isSelected()) { pFileImport.setVisible(true); } else { pFileImport.setVisible(false); } pack(); } }); builder.add(cbUseFileImportPlugins, cc.xy(8, 3, CellConstraints.LEFT, CellConstraints.DEFAULT)); // file import pFileImport = new FileImportTemplatePanel(1); pFileImport.setVisible(false); pFileImport.addRepaintListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { pack(); } }); builder.add(pFileImport, cc.xyw(2, 5, 7)); // buttons bImport = new JButton(Messages.getString("ML.ScanFolderDialog.bImport")); if (bImport.getPreferredSize().width < MIN_BUTTON_WIDTH) bImport.setPreferredSize(new Dimension(MIN_BUTTON_WIDTH, bImport.getPreferredSize().height)); bImport.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { save(); File selectedFolder = new File(tfFolderPath.getText()); if (selectedFolder.isDirectory()) { setDoImport(true); instance.setVisible(false); } else { JOptionPane.showMessageDialog(null, Messages.getString("ML.ScanFolderDialog.InvalidPathMsg"), Messages.getString("ML.ScanFolderDialog.InvalidPathTitle"), JOptionPane.INFORMATION_MESSAGE); } } }); bCancel = new JButton(Messages.getString("ML.ScanFolderDialog.bCancel")); if (bCancel.getPreferredSize().width < MIN_BUTTON_WIDTH) bCancel.setPreferredSize(new Dimension(MIN_BUTTON_WIDTH, bCancel.getPreferredSize().height)); bCancel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { setDoImport(false); instance.setVisible(false); } }); bSave = new JButton(Messages.getString("ML.ScanFolderDialog.bSave")); if (bSave.getPreferredSize().width < MIN_BUTTON_WIDTH) bSave.setPreferredSize(new Dimension(MIN_BUTTON_WIDTH, bSave.getPreferredSize().height)); bSave.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { save(); } }); JPanel bPanel = new JPanel(); bPanel.setAlignmentX(CENTER_ALIGNMENT); bPanel.add(bImport); bPanel.add(bSave); bPanel.add(bCancel); builder.add(bPanel, cc.xyw(2, 7, 7)); getContentPane().add(builder.getPanel()); pack(); }