List of usage examples for javax.swing JScrollPane setColumnHeaderView
public void setColumnHeaderView(Component view)
From source file:com.projity.pm.graphic.spreadsheet.common.CommonSpreadSheet.java
protected void configureScrollPaneHeaders(JScrollPane scrollPane) { if (scrollPane instanceof ScaledScrollPane) scrollPane.setColumnHeaderView(((ScaledScrollPane) scrollPane).getTimeScaleComponent()); else/* ww w . j ava 2s.c o m*/ scrollPane.setColumnHeaderView(getTableHeader()); JViewport vp = new JViewport(); vp.setView(rowHeader); vp.setPreferredSize(rowHeader.getPreferredSize()); scrollPane.setRowHeader(vp); corner = new SpreadSheetCorner(this); scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, corner); //scrollPane.setCorner(JScrollPane.LOWER_LEFT_CORNER,new GradientCorner()); }
From source file:Main.java
public Main() { super("JScrollPane Demo"); JScrollPane scrollPane = new JScrollPane(label); JLabel[] corners = new JLabel[4]; for (int i = 0; i < 4; i++) { corners[i] = new JLabel(); corners[i].setBackground(Color.white); corners[i].setOpaque(true);//w w w . j ava 2 s. c o m } JLabel rowheader = new JLabel() { public void paintComponent(Graphics g) { super.paintComponent(g); Rectangle rect = g.getClipBounds(); for (int i = 50 - (rect.y % 50); i < rect.height; i += 50) { g.drawLine(0, rect.y + i, 3, rect.y + i); g.drawString("" + (rect.y + i), 6, rect.y + i + 3); } } public Dimension getPreferredSize() { return new Dimension(25, (int) label.getPreferredSize().getHeight()); } }; rowheader.setBackground(Color.white); rowheader.setOpaque(true); JLabel columnheader = new JLabel() { public void paintComponent(Graphics g) { super.paintComponent(g); Rectangle r = g.getClipBounds(); for (int i = 50 - (r.x % 50); i < r.width; i += 50) { g.drawLine(r.x + i, 0, r.x + i, 3); g.drawString("" + (r.x + i), r.x + i - 10, 16); } } public Dimension getPreferredSize() { return new Dimension((int) label.getPreferredSize().getWidth(), 25); } }; columnheader.setBackground(Color.white); columnheader.setOpaque(true); scrollPane.setRowHeaderView(rowheader); scrollPane.setColumnHeaderView(columnheader); scrollPane.setCorner(JScrollPane.LOWER_LEFT_CORNER, corners[0]); scrollPane.setCorner(JScrollPane.LOWER_RIGHT_CORNER, corners[1]); scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, corners[2]); scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, corners[3]); getContentPane().add(scrollPane); setSize(400, 300); setVisible(true); }
From source file:HeaderDemo.java
public HeaderDemo() { super("JScrollPane Demo"); JScrollPane scrollPane = new JScrollPane(label); JLabel[] corners = new JLabel[4]; for (int i = 0; i < 4; i++) { corners[i] = new JLabel(); corners[i].setBackground(Color.white); corners[i].setOpaque(true);//from w w w. j ava 2 s . co m } JLabel rowheader = new JLabel() { public void paintComponent(Graphics g) { super.paintComponent(g); Rectangle rect = g.getClipBounds(); for (int i = 50 - (rect.y % 50); i < rect.height; i += 50) { g.drawLine(0, rect.y + i, 3, rect.y + i); g.drawString("" + (rect.y + i), 6, rect.y + i + 3); } } public Dimension getPreferredSize() { return new Dimension(25, (int) label.getPreferredSize().getHeight()); } }; rowheader.setBackground(Color.white); rowheader.setOpaque(true); JLabel columnheader = new JLabel() { public void paintComponent(Graphics g) { super.paintComponent(g); Rectangle r = g.getClipBounds(); for (int i = 50 - (r.x % 50); i < r.width; i += 50) { g.drawLine(r.x + i, 0, r.x + i, 3); g.drawString("" + (r.x + i), r.x + i - 10, 16); } } public Dimension getPreferredSize() { return new Dimension((int) label.getPreferredSize().getWidth(), 25); } }; columnheader.setBackground(Color.white); columnheader.setOpaque(true); scrollPane.setRowHeaderView(rowheader); scrollPane.setColumnHeaderView(columnheader); scrollPane.setCorner(JScrollPane.LOWER_LEFT_CORNER, corners[0]); scrollPane.setCorner(JScrollPane.LOWER_RIGHT_CORNER, corners[1]); scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, corners[2]); scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, corners[3]); getContentPane().add(scrollPane); setSize(400, 300); setVisible(true); }
From source file:com.mgmtp.perfload.loadprofiles.ui.AppFrame.java
/** * Mostly created by Eclipse WindowBuilder *//*from w w w. j a v a2s . c o m*/ private void initComponents() { setTitle("perfLoad - Load Profile Configurator"); setSize(1032, 984); setLocationRelativeTo(null); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); SwingUtils.setUIFontStyle(Font.PLAIN); { JMenuBar menuBar = new JMenuBar(); menuBar.setName("menuBar"); setJMenuBar(menuBar); initMenuBar(menuBar); } contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new MigLayout("insets 0", "[grow][]", "[25px][400][grow]")); { JToolBar toolBar = new JToolBar() { @Override protected JButton createActionComponent(final Action a) { JButton button = super.createActionComponent(a); button.setFocusable(false); button.setHideActionText(false); return button; } }; toolBar.setName("toolBar"); contentPane.add(toolBar, "cell 0 0 2 1,growx,aligny top"); initToolBar(toolBar); } { JScrollPane spTree = new JScrollPane(); spTree.setBorder(new CompoundBorder( new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Load Profile Elements", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)), new EmptyBorder(4, 4, 4, 4))); contentPane.add(spTree, "cell 0 1,grow"); spTree.setName("spTree"); { tree = new JTree(); tree.addKeyListener(new TreeKeyListener()); tree.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); tree.addTreeSelectionListener(new TreeTreeSelectionListener()); tree.setShowsRootHandles(true); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setName("tree"); spTree.setViewportView(tree); } } { JPanel pnlMain = new JPanel(); contentPane.add(pnlMain, "cell 1 1"); pnlMain.setName("pnlMain"); pnlMain.setLayout(new MigLayout("insets 0", "[664!]", "[grow][]")); { JPanel pnlLoadProfileProperties = new JPanel(); pnlLoadProfileProperties.setBorder(new TitledBorder(null, "Load Profile Properties", TitledBorder.LEADING, TitledBorder.TOP, null, null)); pnlLoadProfileProperties.setName("pnlLoadProfileProperties"); pnlMain.add(pnlLoadProfileProperties, "flowx,cell 0 0,grow"); pnlLoadProfileProperties .setLayout(new MigLayout("insets 4", "[270,grow]8[]8[200]8[]8[200]", "[][][][grow]")); { lblName = new JLabel("Name"); lblName.setDisplayedMnemonic('N'); lblName.setHorizontalAlignment(SwingConstants.CENTER); lblName.setName("lblName"); pnlLoadProfileProperties.add(lblName, "cell 0 0"); } { JSeparator separator = new JSeparator(); separator.setPreferredSize(new Dimension(0, 200)); separator.setOrientation(SwingConstants.VERTICAL); separator.setName("separator"); pnlLoadProfileProperties.add(separator, "cell 1 0 1 4, growy"); } { JLabel lblClient = new JLabel("Clients"); lblClient.setName("lblClient"); pnlLoadProfileProperties.add(lblClient, "cell 2 0"); } { JSeparator separator = new JSeparator(); separator.setPreferredSize(new Dimension(0, 200)); separator.setOrientation(SwingConstants.VERTICAL); separator.setName("separator"); pnlLoadProfileProperties.add(separator, "cell 3 0 1 4, growy"); } { lblTargets = new JLabel("Targets"); lblTargets.setName("lblTargets"); pnlLoadProfileProperties.add(lblTargets, "cell 4 0"); } { txtName = new JTextField(); lblName.setLabelFor(txtName); txtName.setColumns(10); txtName.setName("txtName"); txtName.getDocument().addDocumentListener(dirtyListener); pnlLoadProfileProperties.add(txtName, "cell 0 1,growx"); } { JScrollPane spClients = new JScrollPane(); spClients.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); spClients.setName("spClients"); pnlLoadProfileProperties.add(spClients, "cell 2 1 1 3,grow"); { tblClients = new JCheckListTable(); tblClients.setName("tblClients"); spClients.setViewportView(tblClients); spClients.setColumnHeaderView(null); } } { JScrollPane spTargets = new JScrollPane(); spTargets.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); spTargets.setName("spTargets"); pnlLoadProfileProperties.add(spTargets, "cell 4 1 1 3,grow"); { tblTargets = new JCheckListTable(); tblTargets.setName("tblTargets"); spTargets.setViewportView(tblTargets); spTargets.setColumnHeaderView(null); } } { lblDescription = new JLabel("Description"); lblDescription.setDisplayedMnemonic('D'); lblDescription.setName("lblDescription"); pnlLoadProfileProperties.add(lblDescription, "cell 0 2"); } { JScrollPane spDescription = new JScrollPane(); spDescription.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); spDescription.setName("spDescription"); pnlLoadProfileProperties.add(spDescription, "cell 0 3,height 50:50:,grow"); { taDescription = new JTextArea(); taDescription.setFont(txtName.getFont()); lblDescription.setLabelFor(taDescription); taDescription.setRows(3); taDescription.setName("taDescription"); taDescription.getDocument().addDocumentListener(dirtyListener); spDescription.setViewportView(taDescription); } } } { JPanel pnlCurveAssignment = new JPanel(); pnlCurveAssignment.setBorder(new TitledBorder(null, "Active Load Curve Assignment", TitledBorder.LEADING, TitledBorder.TOP, null, null)); pnlMain.add(pnlCurveAssignment, "cell 0 1,grow"); pnlCurveAssignment.setLayout(new MigLayout("insets 4", "[grow]", "[grow][]")); { pnlCard = new JPanel(); pnlCard.setName("pnlCard"); pnlCurveAssignment.add(pnlCard, "cell 0 0,grow"); cardLayout = new CardLayout(0, 0); pnlCard.setLayout(cardLayout); { stairsPanel = new StairsPanel(); stairsPanel.setName("stairsPanel"); pnlCard.add(stairsPanel, "stairs"); } { oneTimePanel = new OneTimePanel(); oneTimePanel.setName("oneTimePanel"); pnlCard.add(oneTimePanel, "oneTime"); } { markerPanel = new MarkerPanel(); markerPanel.setName("markerPanel"); pnlCard.add(markerPanel, "marker"); } { JLabel lblNoActiveCurve = new JLabel("no active curve assignment"); lblNoActiveCurve.setHorizontalAlignment(SwingConstants.CENTER); pnlCard.add(lblNoActiveCurve, "none"); lblNoActiveCurve.setName("lblNoActiveCurve"); } } { btnOk = new JButtonExt("OK"); getRootPane().setDefaultButton(btnOk); btnOk.setEnabled(false); btnOk.addActionListener(new BtnOkActionListener()); btnOk.setMnemonic(KeyEvent.VK_O); btnOk.setName("btnOk"); pnlCurveAssignment.add(btnOk, "cell 0 1,alignx right"); } { btnCancel = new JButtonExt("Cancel"); btnCancel.setEnabled(false); btnCancel.addActionListener(new BtnCancelActionListener()); btnCancel.setMnemonic(KeyEvent.VK_C); btnCancel.setName("btnCancel"); pnlCurveAssignment.add(btnCancel, "cell 0 1,alignx right"); } } } }
From source file:edu.ku.brc.specify.tasks.subpane.qb.QueryBldrPane.java
/** * @param parentList/*from ww w . j a va2s.co m*/ */ protected void fillNextList(final JList parentList) { if (processingLists) { return; } processingLists = true; final int curInx = listBoxList.indexOf(parentList); if (curInx > -1) { int startSize = listBoxPanel.getComponentCount(); for (int i = curInx + 1; i < listBoxList.size(); i++) { listBoxPanel.remove(spList.get(i)); } int removed = startSize - listBoxPanel.getComponentCount(); for (int i = 0; i < removed; i++) { tableTreeList.remove(tableTreeList.size() - 1); } } else { listBoxPanel.removeAll(); tableTreeList.clear(); } QryListRendererIFace item = (QryListRendererIFace) parentList.getSelectedValue(); if (item instanceof ExpandableQRI) { JList newList; DefaultListModel model; JScrollPane sp; if (curInx == listBoxList.size() - 1) { newList = new JList(model = new DefaultListModel()); newList.addMouseListener(new MouseAdapter() { /* (non-Javadoc) * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent) */ @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { if (currentInx != -1) { JList list = (JList) e.getSource(); QryListRendererIFace qriFace = (QryListRendererIFace) list.getSelectedValue(); if (BaseQRI.class.isAssignableFrom(qriFace.getClass())) { BaseQRI qri = (BaseQRI) qriFace; if (qri.isInUse()) { //remove the field for (QueryFieldPanel qfp : QueryBldrPane.this.queryFieldItems) { FieldQRI fqri = qfp.getFieldQRI(); if (fqri == qri || (fqri instanceof RelQRI && fqri.getTable() == qri)) { boolean clearIt = qfp.getSchemaItem() != null; QueryBldrPane.this.removeQueryFieldItem(qfp); if (clearIt) { qfp.setField(null, null); } break; } } } else { // add the field try { FieldQRI fieldQRI = buildFieldQRI(qri); if (fieldQRI == null) { throw new Exception("null FieldQRI"); } SpQueryField qf = new SpQueryField(); qf.initialize(); qf.setFieldName(fieldQRI.getFieldName()); qf.setStringId(fieldQRI.getStringId()); query.addReference(qf, "fields"); if (!isExportMapping) { addQueryFieldItem(fieldQRI, qf, false); } else { addNewMapping(fieldQRI, qf, null, false); } } catch (Exception ex) { log.error(ex); UsageTracker.incrHandledUsageCount(); edu.ku.brc.exceptions.ExceptionTracker.getInstance() .capture(QueryBldrPane.class, ex); return; } } } } } } }); newList.setCellRenderer(qryRenderer); listBoxList.add(newList); sp = new JScrollPane(newList, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); JLabel colHeader = UIHelper.createLabel(item.getTitle()); colHeader.setHorizontalAlignment(SwingConstants.CENTER); colHeader.setBackground(listBoxPanel.getBackground()); colHeader.setOpaque(true); sp.setColumnHeaderView(colHeader); spList.add(sp); newList.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { fillNextList(listBoxList.get(curInx + 1)); } } }); } else { newList = listBoxList.get(curInx + 1); model = (DefaultListModel) newList.getModel(); sp = spList.get(curInx + 1); JLabel colHeaderLbl = (JLabel) sp.getColumnHeader().getComponent(0); if (item instanceof TableQRI) { colHeaderLbl.setText(((TableQRI) item).getTitle()); } else { colHeaderLbl.setText(getResourceString("QueryBldrPane.QueryFields")); } } createNewList((TableQRI) item, model); listBoxPanel.remove(addBtn); listBoxPanel.add(sp); tableTreeList.add(((ExpandableQRI) item).getTableTree()); listBoxPanel.add(addBtn); currentInx = -1; } else { listBoxPanel.add(addBtn); } SwingUtilities.invokeLater(new Runnable() { public void run() { updateAddBtnState(); // Is all this really necessary listBoxPanel.validate(); listBoxPanel.repaint(); scrollPane.validate(); scrollPane.invalidate(); scrollPane.doLayout(); scrollPane.repaint(); validate(); invalidate(); doLayout(); repaint(); UIRegistry.forceTopFrameRepaint(); } }); processingLists = false; currentInx = curInx; }
From source file:org.tinymediamanager.ui.tvshows.TvShowPanel.java
/** * Instantiates a new tv show panel./* w w w. j av a 2 s . c o m*/ */ public TvShowPanel() { super(); treeModel = new TvShowTreeModel(tvShowList.getTvShows()); tvShowSeasonSelectionModel = new TvShowSeasonSelectionModel(); tvShowEpisodeSelectionModel = new TvShowEpisodeSelectionModel(); // build menu menu = new JMenu(BUNDLE.getString("tmm.tvshows")); //$NON-NLS-1$ JFrame mainFrame = MainWindow.getFrame(); JMenuBar menuBar = mainFrame.getJMenuBar(); menuBar.add(menu); setLayout(new FormLayout( new ColumnSpec[] { FormFactory.RELATED_GAP_COLSPEC, ColumnSpec.decode("850px:grow"), FormFactory.RELATED_GAP_COLSPEC, }, new RowSpec[] { FormFactory.RELATED_GAP_ROWSPEC, RowSpec.decode("default:grow"), })); JSplitPane splitPane = new JSplitPane(); splitPane.setContinuousLayout(true); add(splitPane, "2, 2, fill, fill"); JPanel panelTvShowTree = new JPanel(); splitPane.setLeftComponent(panelTvShowTree); panelTvShowTree.setLayout(new FormLayout( new ColumnSpec[] { FormFactory.RELATED_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, FormFactory.UNRELATED_GAP_COLSPEC, ColumnSpec.decode("default:grow"), FormFactory.RELATED_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, }, new RowSpec[] { FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC, RowSpec.decode("3px:grow"), FormFactory.RELATED_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC, })); textField = EnhancedTextField.createSearchTextField(); panelTvShowTree.add(textField, "4, 1, right, bottom"); textField.setColumns(12); textField.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(final DocumentEvent e) { applyFilter(); } @Override public void removeUpdate(final DocumentEvent e) { applyFilter(); } @Override public void changedUpdate(final DocumentEvent e) { applyFilter(); } public void applyFilter() { TvShowTreeModel filteredModel = (TvShowTreeModel) tree.getModel(); if (StringUtils.isNotBlank(textField.getText())) { filteredModel.setFilter(SearchOptions.TEXT, textField.getText()); } else { filteredModel.removeFilter(SearchOptions.TEXT); } filteredModel.filter(tree); } }); final JToggleButton btnFilter = new JToggleButton(IconManager.FILTER); btnFilter.setToolTipText(BUNDLE.getString("movieextendedsearch.options")); //$NON-NLS-1$ panelTvShowTree.add(btnFilter, "6, 1, default, bottom"); JScrollPane scrollPane = new JScrollPane(); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); panelTvShowTree.add(scrollPane, "2, 3, 5, 1, fill, fill"); JToolBar toolBar = new JToolBar(); toolBar.setRollover(true); toolBar.setFloatable(false); toolBar.setOpaque(false); panelTvShowTree.add(toolBar, "2, 1"); // toolBar.add(actionUpdateDatasources); final JSplitButton buttonUpdateDatasource = new JSplitButton(IconManager.REFRESH); // temp fix for size of the button buttonUpdateDatasource.setText(" "); buttonUpdateDatasource.setHorizontalAlignment(JButton.LEFT); // buttonScrape.setMargin(new Insets(2, 2, 2, 24)); buttonUpdateDatasource.setSplitWidth(18); buttonUpdateDatasource.setToolTipText(BUNDLE.getString("update.datasource")); //$NON-NLS-1$ buttonUpdateDatasource.addSplitButtonActionListener(new SplitButtonActionListener() { public void buttonClicked(ActionEvent e) { actionUpdateDatasources.actionPerformed(e); } public void splitButtonClicked(ActionEvent e) { // build the popupmenu on the fly buttonUpdateDatasource.getPopupMenu().removeAll(); buttonUpdateDatasource.getPopupMenu().add(new JMenuItem(actionUpdateDatasources2)); buttonUpdateDatasource.getPopupMenu().addSeparator(); for (String ds : TvShowModuleManager.SETTINGS.getTvShowDataSource()) { buttonUpdateDatasource.getPopupMenu() .add(new JMenuItem(new TvShowUpdateSingleDatasourceAction(ds))); } buttonUpdateDatasource.getPopupMenu().addSeparator(); buttonUpdateDatasource.getPopupMenu().add(new JMenuItem(actionUpdateTvShow)); buttonUpdateDatasource.getPopupMenu().pack(); } }); JPopupMenu popup = new JPopupMenu("popup"); buttonUpdateDatasource.setPopupMenu(popup); toolBar.add(buttonUpdateDatasource); JSplitButton buttonScrape = new JSplitButton(IconManager.SEARCH); // temp fix for size of the button buttonScrape.setText(" "); buttonScrape.setHorizontalAlignment(JButton.LEFT); buttonScrape.setSplitWidth(18); buttonScrape.setToolTipText(BUNDLE.getString("tvshow.scrape.selected")); //$NON-NLS-1$ // register for listener buttonScrape.addSplitButtonActionListener(new SplitButtonActionListener() { @Override public void buttonClicked(ActionEvent e) { actionScrape.actionPerformed(e); } @Override public void splitButtonClicked(ActionEvent e) { } }); popup = new JPopupMenu("popup"); JMenuItem item = new JMenuItem(actionScrape2); popup.add(item); // item = new JMenuItem(actionScrapeUnscraped); // popup.add(item); item = new JMenuItem(actionScrapeSelected); popup.add(item); item = new JMenuItem(actionScrapeNewItems); popup.add(item); buttonScrape.setPopupMenu(popup); toolBar.add(buttonScrape); toolBar.add(actionEdit); JButton btnMediaInformation = new JButton(); btnMediaInformation.setAction(actionMediaInformation); toolBar.add(btnMediaInformation); // install drawing of full with tree = new ZebraJTree(treeModel) { private static final long serialVersionUID = 2422163883324014637L; @Override public void paintComponent(Graphics g) { width = this.getWidth(); super.paintComponent(g); } }; tvShowSelectionModel = new TvShowSelectionModel(tree); TreeUI ui = new TreeUI() { @Override protected void paintRow(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) { bounds.width = width - bounds.x; super.paintRow(g, clipBounds, insets, bounds, path, row, isExpanded, hasBeenExpanded, isLeaf); } }; tree.setUI(ui); tree.setRootVisible(false); tree.setShowsRootHandles(true); tree.setCellRenderer(new TvShowTreeCellRenderer()); tree.setRowHeight(0); scrollPane.setViewportView(tree); JPanel panelHeader = new JPanel() { private static final long serialVersionUID = -6914183798172482157L; @Override public void paintComponent(Graphics g) { super.paintComponent(g); JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getColHeaderColors(), 0, 0, getWidth(), getHeight()); } }; scrollPane.setColumnHeaderView(panelHeader); panelHeader.setLayout(new FormLayout( new ColumnSpec[] { FormFactory.RELATED_GAP_COLSPEC, ColumnSpec.decode("default:grow"), FormFactory.RELATED_GAP_COLSPEC, ColumnSpec.decode("center:20px"), ColumnSpec.decode("center:20px"), ColumnSpec.decode("center:20px") }, new RowSpec[] { FormFactory.DEFAULT_ROWSPEC, })); JLabel lblTvShowsColumn = new JLabel(BUNDLE.getString("metatag.tvshow")); //$NON-NLS-1$ lblTvShowsColumn.setHorizontalAlignment(JLabel.CENTER); panelHeader.add(lblTvShowsColumn, "2, 1"); JLabel lblNfoColumn = new JLabel(""); lblNfoColumn.setHorizontalAlignment(JLabel.CENTER); lblNfoColumn.setIcon(IconManager.INFO); lblNfoColumn.setToolTipText(BUNDLE.getString("metatag.nfo"));//$NON-NLS-1$ panelHeader.add(lblNfoColumn, "4, 1"); JLabel lblImageColumn = new JLabel(""); lblImageColumn.setHorizontalAlignment(JLabel.CENTER); lblImageColumn.setIcon(IconManager.IMAGE); lblImageColumn.setToolTipText(BUNDLE.getString("metatag.images"));//$NON-NLS-1$ panelHeader.add(lblImageColumn, "5, 1"); JLabel lblSubtitleColumn = new JLabel(""); lblSubtitleColumn.setHorizontalAlignment(JLabel.CENTER); lblSubtitleColumn.setIcon(IconManager.SUBTITLE); lblSubtitleColumn.setToolTipText(BUNDLE.getString("metatag.subtitles"));//$NON-NLS-1$ panelHeader.add(lblSubtitleColumn, "6, 1"); JPanel panel = new JPanel(); panelTvShowTree.add(panel, "2, 5, 3, 1, fill, fill"); panel.setLayout(new FormLayout( new ColumnSpec[] { FormFactory.DEFAULT_COLSPEC, FormFactory.RELATED_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, FormFactory.RELATED_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, FormFactory.RELATED_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, FormFactory.RELATED_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, }, new RowSpec[] { FormFactory.LINE_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC, })); JLabel lblTvShowsT = new JLabel(BUNDLE.getString("metatag.tvshows") + ":"); //$NON-NLS-1$ panel.add(lblTvShowsT, "1, 2, fill, fill"); lblTvShows = new JLabel(""); panel.add(lblTvShows, "3, 2"); JLabel labelSlash = new JLabel("/"); panel.add(labelSlash, "5, 2"); JLabel lblEpisodesT = new JLabel(BUNDLE.getString("metatag.episodes") + ":"); //$NON-NLS-1$ panel.add(lblEpisodesT, "7, 2"); lblEpisodes = new JLabel(""); panel.add(lblEpisodes, "9, 2"); JLayeredPane layeredPaneRight = new JLayeredPane(); layeredPaneRight.setLayout( new FormLayout(new ColumnSpec[] { ColumnSpec.decode("default"), ColumnSpec.decode("default:grow") }, new RowSpec[] { RowSpec.decode("default"), RowSpec.decode("default:grow") })); panelRight = new JPanel(); layeredPaneRight.add(panelRight, "1, 1, 2, 2, fill, fill"); layeredPaneRight.setLayer(panelRight, 0); // glass pane final TvShowExtendedSearchPanel panelExtendedSearch = new TvShowExtendedSearchPanel(treeModel, tree); panelExtendedSearch.setVisible(false); // panelMovieList.add(panelExtendedSearch, "2, 5, 2, 1, fill, fill"); btnFilter.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if (panelExtendedSearch.isVisible() == true) { panelExtendedSearch.setVisible(false); } else { panelExtendedSearch.setVisible(true); } } }); // add a propertychangelistener which reacts on setting a filter tree.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if ("filterChanged".equals(evt.getPropertyName())) { if (Boolean.TRUE.equals(evt.getNewValue())) { btnFilter.setIcon(IconManager.FILTER_ACTIVE); btnFilter.setToolTipText(BUNDLE.getString("movieextendedsearch.options.active")); //$NON-NLS-1$ } else { btnFilter.setIcon(IconManager.FILTER); btnFilter.setToolTipText(BUNDLE.getString("movieextendedsearch.options")); //$NON-NLS-1$ } } } }); layeredPaneRight.add(panelExtendedSearch, "1, 1, fill, fill"); layeredPaneRight.setLayer(panelExtendedSearch, 1); splitPane.setRightComponent(layeredPaneRight); panelRight.setLayout(new CardLayout(0, 0)); JPanel panelTvShow = new TvShowInformationPanel(tvShowSelectionModel); panelRight.add(panelTvShow, "tvShow"); JPanel panelTvShowSeason = new TvShowSeasonInformationPanel(tvShowSeasonSelectionModel); panelRight.add(panelTvShowSeason, "tvShowSeason"); JPanel panelTvShowEpisode = new TvShowEpisodeInformationPanel(tvShowEpisodeSelectionModel); panelRight.add(panelTvShowEpisode, "tvShowEpisode"); tree.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if (node != null) { // click on a tv show if (node.getUserObject() instanceof TvShow) { TvShow tvShow = (TvShow) node.getUserObject(); tvShowSelectionModel.setSelectedTvShow(tvShow); CardLayout cl = (CardLayout) (panelRight.getLayout()); cl.show(panelRight, "tvShow"); } // click on a season if (node.getUserObject() instanceof TvShowSeason) { TvShowSeason tvShowSeason = (TvShowSeason) node.getUserObject(); tvShowSeasonSelectionModel.setSelectedTvShowSeason(tvShowSeason); CardLayout cl = (CardLayout) (panelRight.getLayout()); cl.show(panelRight, "tvShowSeason"); } // click on an episode if (node.getUserObject() instanceof TvShowEpisode) { TvShowEpisode tvShowEpisode = (TvShowEpisode) node.getUserObject(); tvShowEpisodeSelectionModel.setSelectedTvShowEpisode(tvShowEpisode); CardLayout cl = (CardLayout) (panelRight.getLayout()); cl.show(panelRight, "tvShowEpisode"); } } else { // check if there is at least one tv show in the model TvShowRootTreeNode root = (TvShowRootTreeNode) tree.getModel().getRoot(); if (root.getChildCount() == 0) { // sets an inital show tvShowSelectionModel.setSelectedTvShow(null); } } } }); addComponentListener(new ComponentAdapter() { @Override public void componentHidden(ComponentEvent e) { menu.setVisible(false); super.componentHidden(e); } @Override public void componentShown(ComponentEvent e) { menu.setVisible(true); super.componentHidden(e); } }); // further initializations init(); initDataBindings(); // selecting first TV show at startup if (tvShowList.getTvShows() != null && tvShowList.getTvShows().size() > 0) { DefaultMutableTreeNode firstLeaf = (DefaultMutableTreeNode) ((DefaultMutableTreeNode) tree.getModel() .getRoot()).getFirstChild(); tree.setSelectionPath(new TreePath(((DefaultMutableTreeNode) firstLeaf.getParent()).getPath())); tree.setSelectionPath(new TreePath(firstLeaf.getPath())); } }