protected JComponent createCenterPanel() { JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints constr; // list label constr = new GridBagConstraints(); constr.gridy = 0; constr.anchor = GridBagConstraints.WEST; constr.insets = new Insets(5, 5, 0, 5); panel.add(new JLabel(IdeBundle.message("label.macros")), constr); // macros list constr = new GridBagConstraints(); constr.gridy = 1; constr.weightx = 1; constr.weighty = 1; constr.insets = new Insets(0, 5, 0, 5); constr.fill = GridBagConstraints.BOTH; constr.anchor = GridBagConstraints.WEST; panel.add(new JScrollPane(myMacrosList), constr); myMacrosList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); myMacrosList.setPreferredSize(null); // preview label constr = new GridBagConstraints(); constr.gridx = 0; constr.gridy = 2; constr.anchor = GridBagConstraints.WEST; constr.insets = new Insets(5, 5, 0, 5); panel.add(new JLabel(IdeBundle.message("label.macro.preview")), constr); // preview constr = new GridBagConstraints(); constr.gridx = 0; constr.gridy = 3; constr.weightx = 1; constr.weighty = 1; constr.fill = GridBagConstraints.BOTH; constr.anchor = GridBagConstraints.WEST; constr.insets = new Insets(0, 5, 5, 5); panel.add(new JScrollPane(myPreviewTextarea), constr); myPreviewTextarea.setEditable(false); myPreviewTextarea.setLineWrap(true); myPreviewTextarea.setPreferredSize(null); panel.setPreferredSize(new Dimension(400, 500)); return panel; }
JPanel getPanel(int infoWidth, int infoHeight) { //For layout purposes, put things in separate panels //Create the list and list view to handle the list of //Jmol Instances. instanceList = new JList(new DefaultListModel()); instanceList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); instanceList.setTransferHandler(new ArrayListTransferHandler(this)); instanceList.setCellRenderer(new InstanceCellRenderer()); instanceList.setDragEnabled(true); instanceList.setPreferredSize(new Dimension(350, 200)); JScrollPane instanceListView = new JScrollPane(instanceList); instanceListView.setPreferredSize(new Dimension(350, 200)); JPanel instanceSet = new JPanel(); instanceSet.setLayout(new BorderLayout()); instanceSet.add(new JLabel(listLabel), BorderLayout.NORTH); instanceSet.add(instanceListView, BorderLayout.CENTER); instanceSet.add(new JLabel(GT._("double-click and drag to reorder")), BorderLayout.SOUTH); //Create the Instance add button. addInstanceButton = new JButton(GT._("Add Present Jmol State as Instance...")); addInstanceButton.addActionListener(this); JPanel buttonPanel = new JPanel(); buttonPanel.setMaximumSize(new Dimension(350, 50)); showInstanceButton = new JButton(GT._("Show Selected")); showInstanceButton.addActionListener(this); deleteInstanceButton = new JButton(GT._("Delete Selected")); deleteInstanceButton.addActionListener(this); buttonPanel.add(showInstanceButton); buttonPanel.add(deleteInstanceButton); // width height or %width JPanel paramPanel = appletParamPanel(); paramPanel.setMaximumSize(new Dimension(350, 70)); //Instance selection JPanel instanceButtonPanel = new JPanel(); instanceButtonPanel.add(addInstanceButton); instanceButtonPanel.setSize(300, 70); JPanel p = new JPanel(); p.setLayout(new BorderLayout()); p.add(instanceButtonPanel, BorderLayout.NORTH); p.add(buttonPanel, BorderLayout.SOUTH); JPanel instancePanel = new JPanel(); instancePanel.setLayout(new BorderLayout()); instancePanel.add(instanceSet, BorderLayout.CENTER); instancePanel.add(p, BorderLayout.SOUTH); JPanel rightPanel = new JPanel(); rightPanel.setLayout(new BorderLayout()); rightPanel.setMinimumSize(new Dimension(350, 350)); rightPanel.setMaximumSize(new Dimension(350, 1000)); rightPanel.add(paramPanel, BorderLayout.NORTH); rightPanel.add(instancePanel, BorderLayout.CENTER); rightPanel.setBorder(BorderFactory.createTitledBorder(GT._("Jmol Instances:"))); //Create the overall panel JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); JPanel leftPanel = getLeftPanel(infoWidth, infoHeight); leftPanel.setMaximumSize(new Dimension(350, 1000)); //Add everything to this panel. panel.add(leftPanel, BorderLayout.CENTER); panel.add(rightPanel, BorderLayout.EAST); enableButtons(instanceList); return panel; }
public DocumentPanel() { super(new BorderLayout()); JLabel lblDocument = new JLabel("Document: " + document.getTitle()); lblDocument.setBorder(new EtchedBorder()); textPane = new JTextPane(document); textPane.setEditable(false); textPane.setMargin(new Insets(5, 20, 5, 5)); textPane.setMaximumSize(new Dimension(364, 1000000000)); textPane.setPreferredSize(new Dimension(364, 400)); textPane.setMinimumSize(new Dimension(364, 10)); textPane.addCaretListener( new CaretListener() { public void caretUpdate(CaretEvent e) { int length = document.getLength(); int offset = e.getDot(); if (e.getDot() == e.getMark()) textPane.getCaret().moveDot(offset + 1); Paragraph p = lockManager.getParFromOffset(offset); int pOffset = p.getOffset(); lblCursor.setText( "Document Length=" + String.valueOf(length) + ", CaretOffset=" + String.valueOf(offset) + ", Paragraph=" + p.toString() + ", Offset in Paragraph=" + String.valueOf(offset - p.getOffset())); } }); Box box = new Box(BoxLayout.X_AXIS); box.add(textPane); box.add(Box.createGlue()); box.setBackground(Color.WHITE); box.setOpaque(true); box.setPreferredSize(new Dimension(600, 10000)); lblCursor = new JLabel("Cursor"); lblCursor.setBorder(new EtchedBorder()); JPanel boxText = new JPanel(new BorderLayout()); boxText.setBorder(new EmptyBorder(5, 5, 5, 5)); boxText.add(lblDocument, BorderLayout.NORTH); boxText.add(new JScrollPane(box), BorderLayout.CENTER); boxText.add(lblCursor, BorderLayout.SOUTH); JLabel lblPars = new JLabel("Paragraphs: "); lblPars.setBorder(new EtchedBorder()); parList = new JList(); parList.setPreferredSize(new Dimension(100, 300)); parList.setEnabled(false); JPanel boxPars = new JPanel(new BorderLayout()); boxPars.setBorder(new EmptyBorder(5, 5, 5, 5)); boxPars.add(lblPars, BorderLayout.NORTH); boxPars.add(new JScrollPane(parList), BorderLayout.CENTER); add(boxText, BorderLayout.CENTER); add(boxPars, BorderLayout.EAST); }