public SplitPaneDemo() { // Create the list of images and put it in a scroll pane. list = new JList(imageNames); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setSelectedIndex(0); list.addListSelectionListener(this); JScrollPane listScrollPane = new JScrollPane(list); picture = new JLabel(); picture.setFont(picture.getFont().deriveFont(Font.ITALIC)); picture.setHorizontalAlignment(JLabel.CENTER); JScrollPane pictureScrollPane = new JScrollPane(picture); // Create a split pane with the two scroll panes in it. splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane, pictureScrollPane); splitPane.setOneTouchExpandable(true); splitPane.setDividerLocation(150); // Provide minimum sizes for the two components in the split pane. Dimension minimumSize = new Dimension(100, 50); listScrollPane.setMinimumSize(minimumSize); pictureScrollPane.setMinimumSize(minimumSize); // Provide a preferred size for the split pane. splitPane.setPreferredSize(new Dimension(400, 200)); updateLabel(imageNames[list.getSelectedIndex()]); }
/** Constructor. */ public TilePatternsView() { super(); tilePatternIcons = new ArrayList<TilePatternIcon>(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // tileset properties // the tile pattern list // view of the current tile pattern // tileset properties tilesetPropertiesView = new TilesetPropertiesView(); tilesetPropertiesView.setMaximumSize(new Dimension(Integer.MAX_VALUE, 120)); tilesetPropertiesView.setAlignmentX(Component.LEFT_ALIGNMENT); // list tilePatternsListModel = new TilePatternsListModel(); tilePatternsList = new JList(tilePatternsListModel); tilePatternsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); tilePatternsList.setLayoutOrientation(JList.HORIZONTAL_WRAP); tilePatternsList.setVisibleRowCount(-1); // make the rows as wide as possible tilePatternsList .getSelectionModel() .addListSelectionListener(new TilePatternListSelectionListener()); tilePatternsList.setCellRenderer(new TilePatternListRenderer()); tilePatternsList.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent keyEvent) { if (keyEvent.getKeyCode() == KeyEvent.VK_DELETE) { if (tileset != null && tileset.getSelectedTilePattern() != null) { tileset.removeTilePattern(); } } } }); JScrollPane listScroller = new JScrollPane(tilePatternsList); listScroller.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); listScroller.setAlignmentX(Component.LEFT_ALIGNMENT); // tile view tilePatternView = new TilePatternView(); tilePatternView.setMaximumSize(new Dimension(Integer.MAX_VALUE, 300)); tilePatternView.setAlignmentX(Component.LEFT_ALIGNMENT); add(tilesetPropertiesView); add(Box.createRigidArea(new Dimension(0, 5))); add(listScroller); add(Box.createRigidArea(new Dimension(0, 5))); add(tilePatternView); }
protected JScrollPane createFilesList() { fileList = new JList(); if (getFileChooser().isMultiSelectionEnabled()) { fileList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); } else { fileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } fileList.setModel(new MotifFileListModel()); fileList.setCellRenderer(new FileCellRenderer()); fileList.addListSelectionListener(createListSelectionListener(getFileChooser())); fileList.addMouseListener(createDoubleClickListener(getFileChooser(), fileList)); align(fileList); JScrollPane scrollpane = new JScrollPane(fileList); scrollpane.setPreferredSize(prefListSize); scrollpane.setMaximumSize(MAX_SIZE); align(scrollpane); return scrollpane; }
private JList courseList() { JList result = new JList((ListModel) _plan.getSemester(_year, _semester)); result.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); result.setCellRenderer(_planViewCellRenderer); result.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (_courseList.getSelectedIndex() > -1) { _planViewPanel.courseSelected( (Course) _courseList.getModel().getElementAt(_courseList.getSelectedIndex()), _year, _semester); // _planViewPanel.setSelectedSemester(_year, _semester); } } }); return result; }
@Nullable @Override protected JComponent createCenterPanel() { mySdkList = new JBList(); //noinspection unchecked mySdkList.setCellRenderer(new PySdkListCellRenderer("", myModificators)); mySdkList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ToolbarDecorator decorator = ToolbarDecorator.createDecorator(mySdkList) .disableUpDownActions() .setAddAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { addSdk(button); updateOkButton(); } }) .setEditAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { editSdk(); updateOkButton(); } }) .setRemoveAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { removeSdk(); updateOkButton(); } }) .addExtraAction(new ToggleVirtualEnvFilterButton()) .addExtraAction(new ShowPathButton()); decorator.setPreferredSize(new Dimension(600, 500)); myMainPanel = decorator.createPanel(); refreshSdkList(); addListeners(); return myMainPanel; }
void jbInit() throws Exception { titledBorder1 = new TitledBorder( BorderFactory.createLineBorder(new Color(153, 153, 153), 2), "Assembler messages"); this.getContentPane().setLayout(borderLayout1); this.setIconifiable(true); this.setMaximizable(true); this.setResizable(true); this.setTitle("EDIT"); splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT); splitPane.setDividerLocation(470); sourceArea.setFont(new java.awt.Font("Monospaced", 0, 12)); controlPanel.setLayout(gridBagLayout1); controlPanel.setBorder(BorderFactory.createLoweredBevelBorder()); positionPanel.setLayout(gridBagLayout2); fileLabel.setText("Source file:"); fileText.setEditable(false); browseButton.setSelected(false); browseButton.setText("Browse ..."); assembleButton.setEnabled(false); assembleButton.setText("Assemble file"); saveButton.setEnabled(false); saveButton.setText("Save file"); lineLabel.setText("Line:"); lineText.setMinimumSize(new Dimension(50, 20)); lineText.setPreferredSize(new Dimension(50, 20)); lineText.setEditable(false); columnLabel.setText("Column:"); columnText.setMinimumSize(new Dimension(41, 20)); columnText.setPreferredSize(new Dimension(41, 20)); columnText.setEditable(false); columnText.setText(""); messageScrollPane.setBorder(titledBorder1); messageScrollPane.setMinimumSize(new Dimension(33, 61)); messageScrollPane.setPreferredSize(new Dimension(60, 90)); optionsButton.setEnabled(false); optionsButton.setText("Assembler options ..."); messageScrollPane.getViewport().add(messageList, null); messageList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); this.getContentPane().add(splitPane, BorderLayout.CENTER); splitPane.add(textScrollPane, JSplitPane.TOP); splitPane.add(controlPanel, JSplitPane.BOTTOM); textScrollPane.getViewport().add(sourceArea, null); controlPanel.add( fileLabel, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 0, 0), 0, 0)); controlPanel.add( fileText, new GridBagConstraints( 1, 0, 3, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 0, 0), 0, 0)); controlPanel.add( browseButton, new GridBagConstraints( 4, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 0, 5), 0, 0)); controlPanel.add( optionsButton, new GridBagConstraints( 2, 1, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 0, 0), 0, 0)); controlPanel.add( assembleButton, new GridBagConstraints( 3, 1, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 0, 0), 0, 0)); controlPanel.add( saveButton, new GridBagConstraints( 4, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 0, 5), 0, 0)); controlPanel.add( positionPanel, new GridBagConstraints( 0, 1, 2, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 0, 0), 0, 0)); positionPanel.add( lineLabel, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); positionPanel.add( lineText, new GridBagConstraints( 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 5, 0, 0), 0, 0)); positionPanel.add( columnLabel, new GridBagConstraints( 2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0)); positionPanel.add( columnText, new GridBagConstraints( 3, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 5, 0, 0), 0, 0)); controlPanel.add( messageScrollPane, new GridBagConstraints( 0, 2, 5, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); }
public SearchPatient(final String type, final int docID) { try { // "Load" the JDBC driver Class.forName("java.sql.Driver"); // Establish the connection to the database String url = "jdbc:mysql://localhost:3306/cse"; conn = DriverManager.getConnection(url, "root", "admin"); } catch (Exception e) { System.err.println("Got an exception!"); System.err.println(e.getMessage()); } // Menu // MENU ACTIONS // Action to view new patient registered class NewPatientAction extends AbstractAction { private static final long serialVersionUID = 1L; public NewPatientAction() { putValue(SHORT_DESCRIPTION, "View list of new patients"); } public void actionPerformed(ActionEvent e) { ViewRegisteredPatients vp = new ViewRegisteredPatients("new"); vp.setVisible(true); ViewRegisteredPatients.hasNew = false; } } Action newPatientAction = new NewPatientAction(); // Action to view all patient registered class AllPatientAction extends AbstractAction { private static final long serialVersionUID = 1L; public AllPatientAction() { putValue(SHORT_DESCRIPTION, "View list of all patients"); } public void actionPerformed(ActionEvent e) { ViewRegisteredPatients vp = new ViewRegisteredPatients("all"); vp.setVisible(true); } } Action allPatientAction = new AllPatientAction(); // Action to open Statistical Report class StatsReportAction implements MenuListener { public void menuSelected(MenuEvent e) { StatsReport report = new StatsReport(); setAlwaysOnTop(false); report.setVisible(true); report.setAlwaysOnTop(true); } public void menuDeselected(MenuEvent e) {} public void menuCanceled(MenuEvent e) {} } // Action to open Statistical Report class ProfileAction implements MenuListener { public void menuSelected(MenuEvent e) { Profile profilePage = new Profile("staff", docID, type); profilePage.setVisible(true); dispose(); } public void menuDeselected(MenuEvent e) {} public void menuCanceled(MenuEvent e) {} } // MENU COMPONENTS menu = new JMenuBar(); menuOp1 = new JMenu(); menuOp2 = new JMenu(); menuOp3 = new JMenu(); menuOp4 = new JMenu(); menuOp5 = new JMenu(); menuOp1.setText("Profile"); menuOp1.addMenuListener(new ProfileAction()); optionsFrame = new JFrame("Options"); optionsContainer = new JPanel(); optionsContainer.setLayout(new BoxLayout(optionsContainer, BoxLayout.Y_AXIS)); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); if (type.equals("Doctor")) // if a doctor is logging in { menuOp2.setText("Patients"); menuOp3.setText("Appointments Request"); menuOp4.setText("View Medical Alerts"); menuItem1 = new JMenuItem("Search Patient"); menuOp2.add(menuItem1); menu.add(menuOp1); menu.add(menuOp2); menu.add(menuOp3); menu.add(menuOp4); // optionsFrame optionUpdateHCC = new JLabel("Update Healthcare Condition"); optionUpdateHCC.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionUpdateHCC.addMouseListener(new MouseUpdateHCCListener()); optionPrescription = new JLabel("e-Prescription"); optionPrescription.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // optionPrescription.addMouseListener(new MousePrescriptionListener()); optionLabRecord = new JLabel("View Lab Records"); optionLabRecord.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionLabRecord.addMouseListener(new MouseLabRecordListener()); optionUpdateHCR = new JLabel("Update Healthcare Records"); optionUpdateHCR.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionUpdateHCR.addMouseListener(new MouseUpdateHCRListener()); // add option to container optionsContainer.add(optionUpdateHCC); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionPrescription); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionLabRecord); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionLabRecord); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionUpdateHCR); } else if (type.equals("HSP")) // if the HSP is logging in { menuOp2.setText("Patients"); menuOp3.setText("Appointment Request"); menuOp4.setText("View Medical Alerts"); menuOp5.setText("Generate Statistical Report"); menuOp5.addMenuListener(new StatsReportAction()); menuItem1 = new JMenuItem("Search Patient"); menuOp6 = new JMenu("List of Registered Patient"); menuOp6.setMnemonic(KeyEvent.VK_S); menuItem2 = new JMenuItem(newPatientAction); menuItem2.setText("List of New Registered Patient"); menuItem3 = new JMenuItem(allPatientAction); menuItem3.setText("List of All Registered Patient"); menuOp2.add(menuItem1); menuOp2.add(menuOp6); menuOp6.add(menuItem2); menuOp6.add(menuItem3); menu.add(menuOp1); menu.add(menuOp2); menu.add(menuOp3); menu.add(menuOp4); menu.add(menuOp5); // optionsFrame optionUpdateHCC = new JLabel("Update Healthcare Condition"); optionUpdateHCC.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionUpdateHCC.addMouseListener(new MouseUpdateHCCListener()); optionLabRecord = new JLabel("View Lab Records"); optionLabRecord.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionLabRecord.addMouseListener(new MouseLabRecordListener()); optionHCR = new JLabel("Upload Healthcare Records"); optionHCR.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionHCR.addMouseListener(new MouseUploadHCRListener()); optionUpdateHCR = new JLabel("Update Healthcare Records"); optionUpdateHCR.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionUpdateHCR.addMouseListener(new MouseUpdateHCRListener()); // add option to container optionsContainer.add(optionUpdateHCC); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionLabRecord); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionLabRecord); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionHCR); optionsContainer.add(Box.createRigidArea(new Dimension(20, 5))); optionsContainer.add(optionUpdateHCR); } else if (type.equals("Pharmacist")) // if the Pharmacist is logging in { menuOp2.setText("Patients"); menuItem1 = new JMenuItem("Search Patients"); menuOp2.add(menuItem1); menu.add(menuOp1); menu.add(menuOp2); // optionsFrame optionViewPrescription = new JLabel("View e-Prescription"); optionViewPrescription.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionViewPrescription.addMouseListener(new MouseViewPrescriptionListener()); // add option to container optionsContainer.add(optionViewPrescription); } else if (type.equals("Nurse")) // if the nurse is logging in { menuOp2.setText("Patients"); menuItem1 = new JMenuItem("Search Patients"); menuOp2.add(menuItem1); menu.add(menuOp1); menu.add(menuOp2); // optionsFrame optionUpdateHCR = new JLabel("Update Healthcare Records"); optionUpdateHCR.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); optionUpdateHCR.addMouseListener(new MouseUpdateHCRListener()); // add option to container optionsContainer.add(optionUpdateHCR); } // Labels firstNameLabel = new JLabel(" First name:"); // first name label lastNameLabel = new JLabel("Last name:"); // last name label patientListLabel = new JLabel("Patient List:"); // patient list label // Text Fields firstNameField = new JTextField(10); // first name text field lastNameField = new JTextField(10); // last name text field // Buttons searchButton = new JButton("Search"); // search button searchButton.addActionListener(new SearchButtonListener()); // add listener selectButton = new JButton("Select"); selectButton.addActionListener(new SelectButtonListener()); // add listener cancelButton = new JButton("Cancel"); cancelButton.addActionListener(new CancelButtonListener()); // add listener // JPanels firstNamePanel = new JPanel(); // First name panel firstNamePanel.add(firstNameLabel); firstNamePanel.add(firstNameField); lastNamePanel = new JPanel(); // Last name panel lastNamePanel.add(lastNameLabel); lastNamePanel.add(lastNameField); patientInfoPanel = new JPanel(); patientInfoPanel.setLayout(new BoxLayout(patientInfoPanel, BoxLayout.X_AXIS)); patientInfoPanel.add(firstNamePanel); patientInfoPanel.add(lastNamePanel); patientInfoPanel.add(searchButton); buttonPanel = new JPanel(); // button panel buttonPanel.add(selectButton); buttonPanel.add(cancelButton); // Patient List patientVector = new Vector(); // Vector of Patient objects patientList = new JList(patientVector); // creates a JList that show the content of the recordVector scrollPatientList = new JScrollPane(patientList); // add scroll option to the list patientList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION); // Allow the selection of only one item at a time String[] patients = new String[1000000]; // Populates the patient list with the patients from the database if (type.equals("Doctor")) { int i = 0; try { // checks if the patient is a patient of the doctor logged statement = conn.createStatement(); rs = statement.executeQuery( "SELECT * FROM appointments WHERE `docID`='" + docID + "' ORDER BY `patientID`"); while (rs.next()) { int patientID = rs.getInt("patientID"); patients[i] = String.valueOf(patientID); i++; } String[] patientSet = (String[]) new HashSet(Arrays.asList(patients)).toArray(new String[0]); // gets information from the specific set of patients for (int j = 0; j < patientSet.length; j++) { statement = conn.createStatement(); rs = statement.executeQuery( "SELECT * FROM patient WHERE `idpatient`='" + patientSet[j] + "';"); while (rs.next()) { Patient obj = new Patient(); obj.setFirstName(rs.getString("fname")); obj.setLastName(rs.getString("lname")); obj.setDOB(rs.getString("dob")); obj.setPatientId(Integer.parseInt(patientSet[j])); patientVector.add(obj); } } } catch (Exception e) { System.err.println("Got an exception! "); System.err.println(e.getMessage()); System.err.println(e); } } else { try { statement = conn.createStatement(); rs = statement.executeQuery("SELECT * FROM patient ORDER BY fname"); while (rs.next()) { Patient obj = new Patient(); obj.setFirstName(rs.getString("fname")); obj.setLastName(rs.getString("lname")); obj.setDOB(rs.getString("dob")); obj.setPatientId(rs.getInt("idpatient")); patientVector.add(obj); } } catch (Exception e) { System.err.println("Got an exception! "); System.err.println(e.getMessage()); } } searchVector = new Vector(); // set options frame optionsFrame.add(optionsContainer); optionsFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // close the window on close optionsFrame.setSize(300, 150); // set size of window optionsFrame.setLocation(600, 280); optionsFrame.setVisible(false); searchPanel = new JPanel(); searchPanel.setLayout(new BoxLayout(searchPanel, BoxLayout.Y_AXIS)); searchPanel.add(patientInfoPanel); searchPanel.add(patientListLabel); searchPanel.add(scrollPatientList); searchPanel.add(buttonPanel); Border padding = BorderFactory.createEmptyBorder(20, 20, 10, 10); searchPanel.setBorder(padding); setJMenuBar(menu); add(searchPanel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(1200, 580); }
private static <E> JList<E> newList(DefaultListModel<E> listModel) { JList<E> list = new JList<>(listModel); list.setFont(f13); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); return list; }
public SaveDialog(Frame parent) { super(parent, true); this.setLayout(new BorderLayout()); // gather unsaved tab Set<Tab> unsaved = new LinkedHashSet<>(); for (Tab tab : MainPanel.getAllTab()) { if (!tab.isSaved()) { unsaved.add(tab); } } if (unsaved.isEmpty()) { // close directly this.setTitle("Confirm close"); // upper labels JPanel labels = new JPanel(new FlowLayout(FlowLayout.LEFT, 11, 7)); labels.add(iconLabel); labels.add(new MyLabel(" Do you really want to close RefluxEdit?")); // buttons JPanel buttons = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 7)); buttons.add( new MyButton("YES") { { SaveDialog.this.getRootPane().setDefaultButton(this); this.setFocusPainted(true); } @Override public void actionPerformed(ActionEvent ev) { close = true; SaveDialog.this.setVisible(false); } }); buttons.add( new MyButton("NO") { { this.setFocusPainted(true); } @Override public void actionPerformed(ActionEvent ev) { close = false; SaveDialog.this.setVisible(false); } }); buttons.setBorder(new EmptyBorder(0, 0, 5, 0)); // this.add(labels, BorderLayout.CENTER); this.add(buttons, BorderLayout.PAGE_END); } else { // ask save changes this.setTitle("Unsaved changes"); // upper components: icon and list JPanel upper = new JPanel(new GridBagLayout()); JPanel listPane = new JPanel(new BorderLayout()); final DefaultListModel<Tab> listModel = new DefaultListModel<>(); final JList<Tab> tabList = new JList<>(listModel); tabList.setFont(f13); tabList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); tabList.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JLabel label = (JLabel) (super.getListCellRendererComponent( list, value, index, isSelected, cellHasFocus)); if (value instanceof Tab) { String text = ((Tab) value).getTabLabel().getText(); label.setText(text.substring(1)); // remove "*" } return label; } }); for (Tab tab : unsaved) { listModel.addElement(tab); } tabList.getSelectionModel().setSelectionInterval(0, listModel.size() - 1); JScrollPane scrollPane = new JScrollPane(tabList); scrollPane.setPreferredSize(new Dimension(350, 170)); listPane.add(new MyLabel("The following tabs are unsaved:"), BorderLayout.PAGE_START); listPane.add(scrollPane, BorderLayout.CENTER); // setup upper GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.weightx = 0; c.weighty = 1; c.insets = new Insets(5, 5, 5, 5); c.anchor = GridBagConstraints.FIRST_LINE_START; upper.add(iconLabel, c); // c.gridx = 1; c.weightx = 1; c.fill = GridBagConstraints.BOTH; upper.add(listPane, c); // lower components: buttons JPanel buttons = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 7)); buttons.add( new MyButton("Save") { { this.setFocusPainted(true); this.setToolTipText("Save selected tab(s)"); SaveDialog.this.getRootPane().setDefaultButton(this); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { for (Tab tab : tabList.getSelectedValuesList()) { if (tab.getFile() != null) { try { tab.save(); MainPanel.close(tab); listModel.removeElement(tab); } catch (Exception ex) { exception(ex); break; } } else { File file = FileChooser.showPreferredFileDialog( RefluxEdit.getInstance(), FileChooser.SAVE, new String[0]); if (file != null) { try { tab.save(file, false); MainPanel.close(tab); listModel.removeElement(tab); } catch (Exception ex) { exception(ex); break; } } } } if (listModel.size() == 0) { RefluxEdit.getInstance().close(); } } }); buttons.add( new MyButton("Discard") { { this.setFocusPainted(true); this.setToolTipText("Discard selected tab(s)"); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { for (Tab tab : tabList.getSelectedValuesList()) { MainPanel.close(tab); listModel.removeElement(tab); } if (listModel.size() == 0) { RefluxEdit.getInstance().close(); } } }); buttons.add( new MyButton("Close") { { this.setFocusPainted(true); this.setToolTipText("Close RefluxEdit"); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { SaveDialog.this.close = true; SaveDialog.this.setVisible(false); } }); buttons.add( new MyButton("Cancel") { { this.setFocusPainted(true); if (isMetal) { this.setPreferredSize(METAL_BUTTON_DIZE); } } @Override public void actionPerformed(ActionEvent ev) { SaveDialog.this.close = false; SaveDialog.this.setVisible(false); } }); this.add(upper, BorderLayout.CENTER); this.add(buttons, BorderLayout.PAGE_END); } }
private void showCompletionPopup( final CompletionResult result, int position, boolean isExplicit) { if (myList == null) { myList = new JBList(); myList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); myList.setCellRenderer( new GroupedItemsListRenderer( new ListItemDescriptor() { public String getTextFor(final Object value) { final LookupFile file = (LookupFile) value; if (file.getMacro() != null) { return file.getMacro(); } else { return (myCurrentCompletion != null && myCurrentCompletion.myKidsAfterSeparator.contains(file) ? myFinder.getSeparator() : "") + file.getName(); } } public String getTooltipFor(final Object value) { return null; } public Icon getIconFor(final Object value) { final LookupFile file = (LookupFile) value; return file.getIcon(); } @Nullable private Separator getSeparatorAboveOf(Object value) { if (myCurrentCompletion == null) return null; final LookupFile file = (LookupFile) value; final int fileIndex = myCurrentCompletion.myToComplete.indexOf(file); if (fileIndex > 0 && !myCurrentCompletion.myMacros.contains(file)) { final LookupFile prev = myCurrentCompletion.myToComplete.get(fileIndex - 1); if (myCurrentCompletion.myMacros.contains(prev)) { return new Separator(""); } } if (myCurrentCompletion.myKidsAfterSeparator.indexOf(file) == 0 && myCurrentCompletion.mySiblings.size() > 0) { final LookupFile parent = file.getParent(); return parent == null ? new Separator("") : new Separator(parent.getName()); } if (myCurrentCompletion.myMacros.size() > 0 && fileIndex == 0) { return new Separator( IdeBundle.message("file.chooser.completion.path.variables.text")); } return null; } public boolean hasSeparatorAboveOf(final Object value) { return getSeparatorAboveOf(value) != null; } public String getCaptionAboveOf(final Object value) { final FileTextFieldImpl.Separator separator = getSeparatorAboveOf(value); return separator != null ? separator.getText() : null; } })); } if (myCurrentPopup != null) { closePopup(); } myCurrentCompletion = result; myCurrentCompletionsPos = position; if (myCurrentCompletion.myToComplete.size() == 0) { showNoSuggestions(isExplicit); return; } myList.setModel( new AbstractListModel() { public int getSize() { return myCurrentCompletion.myToComplete.size(); } public Object getElementAt(final int index) { return myCurrentCompletion.myToComplete.get(index); } }); myList.getSelectionModel().clearSelection(); final PopupChooserBuilder builder = JBPopupFactory.getInstance().createListPopupBuilder(myList); builder.addListener( new JBPopupListener() { public void beforeShown(LightweightWindowEvent event) { myPathTextField.registerKeyboardAction( myCancelAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); for (Action each : myDisabledTextActions) { each.setEnabled(false); } } public void onClosed(LightweightWindowEvent event) { myPathTextField.unregisterKeyboardAction(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)); for (Action each : myDisabledTextActions) { each.setEnabled(true); } } }); myCurrentPopup = builder .setRequestFocus(false) .setAdText(getAdText(myCurrentCompletion)) .setAutoSelectIfEmpty(false) .setResizable(false) .setCancelCallback( new Computable<Boolean>() { public Boolean compute() { final int caret = myPathTextField.getCaretPosition(); myPathTextField.setSelectionStart(caret); myPathTextField.setSelectionEnd(caret); myPathTextField.setFocusTraversalKeysEnabled(true); SwingUtilities.invokeLater( new Runnable() { public void run() { getField().requestFocus(); } }); return Boolean.TRUE; } }) .setItemChoosenCallback( new Runnable() { public void run() { processChosenFromCompletion(false); } }) .setCancelKeyEnabled(false) .setAlpha(0.1f) .setFocusOwners(new Component[] {myPathTextField}) .createPopup(); if (result.myPreselected != null) { myList.setSelectedValue(result.myPreselected, false); } myPathTextField.setFocusTraversalKeysEnabled(false); myCurrentPopup.showInScreenCoordinates(getField(), getLocationForCaret(myPathTextField)); }
public SeverityEditorDialog( final JComponent parent, final HighlightSeverity severity, final SeverityRegistrar severityRegistrar) { super(parent, true); mySeverityRegistrar = severityRegistrar; myOptionsList.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { final Component rendererComponent = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value instanceof SeverityBasedTextAttributes) { setText(((SeverityBasedTextAttributes) value).getSeverity().toString()); } return rendererComponent; } }); myOptionsList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (myCurrentSelection != null) { apply(myCurrentSelection); } myCurrentSelection = (SeverityBasedTextAttributes) myOptionsList.getSelectedValue(); if (myCurrentSelection != null) { reset(myCurrentSelection); myCard.show( myRightPanel, mySeverityRegistrar.isDefaultSeverity(myCurrentSelection.getSeverity()) ? DEFAULT : EDITABLE); } } }); myOptionsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JPanel leftPanel = ToolbarDecorator.createDecorator(myOptionsList) .setAddAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { final String name = Messages.showInputDialog( myPanel, InspectionsBundle.message( "highlight.severity.create.dialog.name.label"), InspectionsBundle.message("highlight.severity.create.dialog.title"), Messages.getQuestionIcon(), "", new InputValidator() { @Override public boolean checkInput(final String inputString) { final ListModel listModel = myOptionsList.getModel(); for (int i = 0; i < listModel.getSize(); i++) { final String severityName = ((SeverityBasedTextAttributes) listModel.getElementAt(i)) .getSeverity() .myName; if (Comparing.strEqual(severityName, inputString)) return false; } return true; } @Override public boolean canClose(final String inputString) { return checkInput(inputString); } }); if (name == null) return; final TextAttributes textAttributes = CodeInsightColors.WARNINGS_ATTRIBUTES.getDefaultAttributes(); HighlightInfoType.HighlightInfoTypeImpl info = new HighlightInfoType.HighlightInfoTypeImpl( new HighlightSeverity(name, 50), TextAttributesKey.createTextAttributesKey(name)); SeverityBasedTextAttributes newSeverityBasedTextAttributes = new SeverityBasedTextAttributes(textAttributes.clone(), info); ((DefaultListModel) myOptionsList.getModel()) .addElement(newSeverityBasedTextAttributes); myOptionsList.clearSelection(); ListScrollingUtil.selectItem(myOptionsList, newSeverityBasedTextAttributes); } }) .setMoveUpAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { apply(myCurrentSelection); ListUtil.moveSelectedItemsUp(myOptionsList); } }) .setMoveDownAction( new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { apply(myCurrentSelection); ListUtil.moveSelectedItemsDown(myOptionsList); } }) .createPanel(); ToolbarDecorator.findRemoveButton(leftPanel) .addCustomUpdater( new AnActionButtonUpdater() { @Override public boolean isEnabled(AnActionEvent e) { return !mySeverityRegistrar.isDefaultSeverity( ((SeverityBasedTextAttributes) myOptionsList.getSelectedValue()).getSeverity()); } }); ToolbarDecorator.findUpButton(leftPanel) .addCustomUpdater( new AnActionButtonUpdater() { @Override public boolean isEnabled(AnActionEvent e) { boolean canMove = ListUtil.canMoveSelectedItemsUp(myOptionsList); if (canMove) { SeverityBasedTextAttributes pair = (SeverityBasedTextAttributes) myOptionsList.getSelectedValue(); if (pair != null && mySeverityRegistrar.isDefaultSeverity(pair.getSeverity())) { final int newPosition = myOptionsList.getSelectedIndex() - 1; pair = (SeverityBasedTextAttributes) myOptionsList.getModel().getElementAt(newPosition); if (mySeverityRegistrar.isDefaultSeverity(pair.getSeverity())) { canMove = false; } } } return canMove; } }); ToolbarDecorator.findDownButton(leftPanel) .addCustomUpdater( new AnActionButtonUpdater() { @Override public boolean isEnabled(AnActionEvent e) { boolean canMove = ListUtil.canMoveSelectedItemsDown(myOptionsList); if (canMove) { SeverityBasedTextAttributes pair = (SeverityBasedTextAttributes) myOptionsList.getSelectedValue(); if (pair != null && mySeverityRegistrar.isDefaultSeverity(pair.getSeverity())) { final int newPosition = myOptionsList.getSelectedIndex() + 1; pair = (SeverityBasedTextAttributes) myOptionsList.getModel().getElementAt(newPosition); if (mySeverityRegistrar.isDefaultSeverity(pair.getSeverity())) { canMove = false; } } } return canMove; } }); myPanel = new JPanel(new BorderLayout()); myPanel.add(leftPanel, BorderLayout.CENTER); myCard = new CardLayout(); myRightPanel = new JPanel(myCard); final JPanel disabled = new JPanel(new GridBagLayout()); final JButton button = new JButton(InspectionsBundle.message("severities.default.settings.message")); button.addActionListener( new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { editColorsAndFonts(); } }); disabled.add( button, new GridBagConstraints( 0, 0, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); myRightPanel.add(DEFAULT, disabled); myRightPanel.add(EDITABLE, myOptionsPanel); myCard.show(myRightPanel, EDITABLE); myPanel.add(myRightPanel, BorderLayout.EAST); fillList(severity); init(); setTitle(InspectionsBundle.message("severities.editor.dialog.title")); reset((SeverityBasedTextAttributes) myOptionsList.getSelectedValue()); }
public DrawViewPanel() { setLayout(new BorderLayout()); splitPane = new JSplitPane(); fromList.setBorder(BorderFactory.createTitledBorder("Select FROM node to Connect")); toList.setBorder(BorderFactory.createTitledBorder("Select TO node to Connect")); fromList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); toList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JPanel nodePanel = new JPanel(); JPanel toNodePanel = new JPanel(); JList arcList = new JList(arcListModel); nodePanel.setLayout(new BorderLayout()); toNodePanel.setLayout(new BorderLayout()); fromListScrollPane = new JScrollPane(fromList); nodePanel.add(fromListScrollPane, BorderLayout.CENTER); toNodePanel.add(new JScrollPane(toList), BorderLayout.CENTER); nodePanel.add(toNodePanel, BorderLayout.SOUTH); JPanel arcButtonPanel = new JPanel(); arcButtonPanel.setLayout(new GridLayout(1, 2)); JPanel northArcButtonPanel = new JPanel(); JPanel southArcButtonPanel = new JPanel(); northArcButtonPanel.setLayout(new BorderLayout()); southArcButtonPanel.setLayout(new BorderLayout()); JButton addDirArcButton = new JButton("==>>"); addDirArcButton.setToolTipText("Add Directed Arc from left node to right node"); addDirArcButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { addDirectedArc(); } }); JButton addUndirArcButton = new JButton("<==>"); addUndirArcButton.setToolTipText("Add Undrected Arc between selected nodes"); addUndirArcButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { addUndirectedArc(); } }); /** Adding Dijkstra button to the viewer* */ JButton runDijkstraButton = new JButton("Dijkstra"); runDijkstraButton.setToolTipText("Runs Dijsktra's algorithm on the given graph"); runDijkstraButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { runDijkstra(); } catch (NotMemberException e1) { JOptionPane.showMessageDialog(GraphViewer.this, e1.getMessage()); } } private void runDijkstra() throws NotMemberException { graph.dijkstra(fromList.getSelectedValue(), toList.getSelectedValue(), Graph.DIRECT); graph.printoutShortestPath(); } }); /** Adding DijkstraReverse button to the viewer* */ JButton runDijkstraReverseButton = new JButton("DijkstraRev"); runDijkstraReverseButton.setToolTipText( "Runs Dijsktra's algorithm (in reverse order) on the given graph"); runDijkstraReverseButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { runDijkstraReverse(); } catch (NotMemberException e1) { JOptionPane.showMessageDialog(GraphViewer.this, e1.getMessage()); } } private void runDijkstraReverse() throws NotMemberException { Node lastNode = null; graph.dijkstraReverse(graph.findNode("12a")); graph.printoutShortestPath(); } }); /** Adding BiDijkstra button to the viewer* */ JButton runBiDijkstraButton = new JButton("BiDijkstra"); runBiDijkstraButton.setToolTipText( "Runs Bidirectional Dijsktra's algorithm on the given graph"); runBiDijkstraButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { runBiDijkstra(); } catch (NotMemberException e1) { JOptionPane.showMessageDialog(GraphViewer.this, e1.getMessage()); } } private void runBiDijkstra() throws NotMemberException { Node firstNode = null; Node lastNode = null; graph.biDijkstra(fromList.getSelectedValue(), toList.getSelectedValue()); graph.printoutShortestPath(); } }); northArcButtonPanel.add(addDirArcButton, BorderLayout.EAST); southArcButtonPanel.add(addUndirArcButton, BorderLayout.WEST); arcButtonPanel.add(northArcButtonPanel); arcButtonPanel.add(southArcButtonPanel); toNodePanel.add(arcButtonPanel, BorderLayout.NORTH); splitPane.setLeftComponent(nodePanel); // right component // rightPanel = new JPanel(); graph.addListener(layouter); canvas = new Draw2DPanel(layouter, null); layouter.settCanvas(canvas); JTabbedPane tabbedPane = new JTabbedPane(); splitPane.setRightComponent(tabbedPane); if (hasOption(VIEW_2D)) { tabbedPane.addTab("Graph2D", canvas); } if (hasOption(VIEW_WF)) { canvasWF = new DrawWFPanel(layouterWF3D, null); layouterWF3D.setCanvasWF(canvasWF); tabbedPane.addTab("WireFrame3D", canvasWF); } if (hasOption(VIEW_3D)) { canvasAnim = new AnimPanel(layouterWF3D, null, new Vector3d(10.0, 10.0, 50.0), false); layouterWF3D.setCanvasAnim(canvasAnim); tabbedPane.addTab("Graph3D", canvasAnim); } // rightPanel.setLayout(new BorderLayout()); arcList.setBorder(BorderFactory.createTitledBorder("Arcs in the graph")); // rightPanel.add(new JScrollPane (arcList), BorderLayout.CENTER); JToolBar toolBar = new JToolBar(); // toolbar buttons JButton openFileButton = new JButton("File"); JButton addNodeButton = new JButton("AN"); JButton addArcButton = new JButton("Add Arc"); JButton deleteNodeButton = new JButton("Delete Node"); JButton deleteArcButton = new JButton("Delete Arc"); JButton showBordersButton = new JButton("SB"); openFileButton.setToolTipText("Open File"); openFileButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { openFile(); } }); addNodeButton.setToolTipText("Add Node"); addNodeButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { addNode(); } }); deleteNodeButton.setToolTipText("Delete Node"); deleteNodeButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { deleteNode(); } }); deleteArcButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { deleteArc(); } }); showBordersButton.setToolTipText("ShowBorders"); showBordersButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { showBorders = !showBorders; changeBorderDisplay(); } }); toolBar.add(openFileButton); toolBar.add(addNodeButton); toolBar.add(addArcButton); toolBar.add(deleteNodeButton); toolBar.add(deleteArcButton); toolBar.add(showBordersButton); toolBar.add(runDijkstraButton); toolBar.add(runDijkstraReverseButton); toolBar.add(runBiDijkstraButton); add(splitPane, BorderLayout.CENTER); add(toolBar, BorderLayout.SOUTH); }
private void initializeComponents() { this.setTitle("Synchro - Kopierassistent"); this.setBounds(0, 0, 550, 600); this.setResizable(true); this.setLayout(null); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.addWindowListener(this); mainPanel = new JPanel(); mainPanel.setBounds(0, 0, this.getWidth() - 20, 25); // fcPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); mainPanel.setLayout(null); btnBackup = new JButton("Backup"); btnBackup.setBounds(this.getWidth() / 2, 0, this.getWidth() / 2 - 20, mainPanel.getHeight()); btnBackup.addActionListener(this); mainPanel.add(btnBackup); this.add(mainPanel); fcPanel = new JPanel(); fcPanel.setBounds(10, 40, this.getWidth(), 260); // fcPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); fcPanel.setLayout(null); quellLabel = new JLabel("Bitte Quellverzeichnis auswählen"); quellLabel.setBounds(10, 5, 320, 20); fcPanel.add(quellLabel); quellListModel = new DefaultListModel<>(); quellJList = new JList<ListItem>(quellListModel); quellJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); quellJList.setLayoutOrientation(JList.VERTICAL); quellJList.addListSelectionListener(this); listBoxScroller = new JScrollPane(quellJList); listBoxScroller.setBounds(0, 30, 315, 100); fcPanel.add(listBoxScroller); btnQAuswahl = new JButton("Quellverz. hinzufügen"); btnQAuswahl.setBounds(320, 30, 200, 25); btnQAuswahl.addActionListener(this); fcPanel.add(btnQAuswahl); btnQEntfernen = new JButton("Quellverz. entfernen"); btnQEntfernen.setBounds(320, 60, 200, 25); btnQEntfernen.addActionListener(this); fcPanel.add(btnQEntfernen); zielLabel = new JLabel("Bitte Zielverzeichnis auswählen"); zielLabel.setBounds(10, 135, 320, 20); fcPanel.add(zielLabel); zielListModel = new DefaultListModel<>(); zielJList = new JList<ListItem>(zielListModel); zielJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); zielJList.setLayoutOrientation(JList.VERTICAL); zielJList.addListSelectionListener(this); listBoxScroller2 = new JScrollPane(zielJList); listBoxScroller2.setBounds(0, 160, 315, 100); fcPanel.add(listBoxScroller2); btnZAuswahl = new JButton("Zielverz. hinzufügen"); btnZAuswahl.setBounds(320, 160, 200, 25); btnZAuswahl.addActionListener(this); fcPanel.add(btnZAuswahl); btnZEntfernen = new JButton("Zielverz. entfernen"); btnZEntfernen.setBounds(320, 190, 200, 25); btnZEntfernen.addActionListener(this); fcPanel.add(btnZEntfernen); this.add(fcPanel); ButtonGroup bGrp = new ButtonGroup(); optionPanel = new JPanel(); optionPanel.setBounds(10, 300 + 10, this.getWidth() - 40, 90); optionPanel.setPreferredSize(new Dimension(this.getWidth() - 40, 90)); // optionPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); optionPanel.setLayout(new GridLayout(3, 1)); nUebSchr = new JRadioButton("Keine Dateien überschreiben"); nUebSchr.addItemListener(this); bGrp.add(nUebSchr); optionPanel.add(nUebSchr); ueSchr = new JRadioButton("Neuere Dateien überschreiben"); ueSchr.addItemListener(this); bGrp.add(ueSchr); optionPanel.add(ueSchr); aUeSchr = new JRadioButton("Alle Dateien überschreiben"); aUeSchr.addItemListener(this); bGrp.add(aUeSchr); optionPanel.add(aUeSchr); this.add(optionPanel); syncPanel = new JPanel(); syncPanel.setBounds( 10, optionPanel.getY() + optionPanel.getHeight() + 10, this.getWidth() - 30, 25); // syncPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); syncPanel.setLayout(new BorderLayout()); btnSync = new JButton("Sync it!"); btnSync.setBounds(0, 0, 150, (syncPanel.getHeight() / 3)); btnSync.addActionListener(this); btnSync.setPreferredSize(new Dimension(150, (syncPanel.getHeight() / 3))); btnSync.setMaximumSize(new Dimension(150, (syncPanel.getHeight() / 3))); syncPanel.add(btnSync, BorderLayout.LINE_START); btnAbbruch = new JButton("Abbrechen"); btnAbbruch.setBounds(0, 0, 150, (syncPanel.getHeight() / 3)); btnAbbruch.addActionListener(this); btnAbbruch.setPreferredSize(new Dimension(150, (syncPanel.getHeight() / 3))); btnAbbruch.setMaximumSize(new Dimension(150, (syncPanel.getHeight() / 3))); btnAbbruch.setVisible(false); syncPanel.add(btnAbbruch, BorderLayout.LINE_END); progressBar = new JProgressBar(JProgressBar.HORIZONTAL); progressBar.setBorderPainted(true); progressBar.setPreferredSize(new Dimension(300, (syncPanel.getHeight() / 3))); progressBar.setForeground(Color.RED); progressBar.setStringPainted(true); progressBar.setVisible(true); syncPanel.add(progressBar, BorderLayout.CENTER); this.add(syncPanel); logPanel = new JPanel(); logPanel.setBounds( 10, syncPanel.getY() + syncPanel.getHeight() + 10, this.getWidth() - 30, 105); logPanel.setLayout(new BorderLayout()); textArea = new JTextArea(); textArea.setMargin(new Insets(3, 3, 3, 3)); textArea.setBackground(Color.black); textArea.setForeground(Color.LIGHT_GRAY); textArea.setAutoscrolls(true); textArea.setFocusable(false); textAreaScroller = new JScrollPane(textArea); DefaultCaret caret = (DefaultCaret) textArea.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); textAreaScroller.setBounds(0, 0, syncPanel.getWidth(), 50); logPanel.add(textAreaScroller, BorderLayout.CENTER); this.add(logPanel, BorderLayout.SOUTH); }
/** Initializes the graphical components */ public void init() { username = getParameter("username"); if (username == null) { username = JOptionPane.showInputDialog( this, "Please enter a username", "Login", JOptionPane.QUESTION_MESSAGE); } try { PORT = Integer.valueOf(getParameter("port")).intValue(); } catch (NumberFormatException e) { PORT = 42412; } URL url = getDocumentBase(); site = url.getHost(); locationURL = "http://" + site + ":" + url.getPort() + "/" + url.getPath(); setSize(615, 362); c = getContentPane(); c.setBackground(new Color(224, 224, 224)); if (site == null || locationURL == null) { c.add(new JLabel("ERROR: did not recieve needed data from page")); } myAction = new MyAction(); myKeyListener = new MyKeyListener(); myMouseListener = new MyMouseListener(); myHyperlinkListener = new MyHyperlinkListener(); c.setLayout(null); cboChannels = new JComboBox(); cboChannels.setBounds(5, 5, 150, 24); butChannel = new JButton("Join"); butChannel.setToolTipText("Join channel"); butChannel.addActionListener(myAction); butChannel.setBounds(160, 5, 60, 24); butCreate = new JButton("Create"); butCreate.setToolTipText("Create new channel"); butCreate.addActionListener(myAction); butCreate.setBounds(230, 5, 100, 24); butCreate.setEnabled(false); butInvite = new JButton("Invite"); butInvite.setToolTipText("Invite Friend"); butInvite.addActionListener(myAction); butInvite.setBounds(340, 5, 80, 24); mainChat = new ChatPane(this); textScroller = new JScrollPane( mainChat, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); textScroller.setBounds(5, 34, 500, 270); userList = new JList(); userList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); userList.setCellRenderer(new MyCellRenderer()); userList.setBackground(new Color(249, 249, 250)); JScrollPane userScroller = new JScrollPane(userList); userScroller.setBounds(510, 34, 100, 297); messageText = new JTextField(); messageText.setBounds(5, 309, 500, 22); messageText.setColumns(10); messageText.setBackground(new Color(249, 249, 250)); JMenuItem item; popup = new JPopupMenu("test"); popup.add("whisper").addActionListener(myAction); popup.add("private message").addActionListener(myAction); popup.add("ignore").addActionListener(myAction); popup.add("clear ignore list").addActionListener(myAction); conNo = new ImageIcon(getURL("images/connect_no.gif")); conYes = new ImageIcon(getURL("images/connect_established.gif")); secNo = new ImageIcon(getURL("images/decrypted.gif")); secYes = new ImageIcon(getURL("images/encrypted.gif")); conIcon = new JLabel(conNo); conIcon.setBorder(new EtchedBorder()); secIcon = new JLabel(secNo); secIcon.setBorder(new EtchedBorder()); conIcon.setBounds(563, 334, 22, 22); secIcon.setBounds(588, 334, 22, 22); bottomText = new JLabel( "<html><body><font color=#445577><b>" + "LlamaChat " + VERSION + "</b></font> © " + "<a href=\"" + linkURL + "\">Joseph Monti</a> 2002-2003" + "</body></html>"); bottomText.setBounds(5, 336, 500, 20); c.add(cboChannels); c.add(butChannel); c.add(butCreate); c.add(butInvite); c.add(textScroller); c.add(userScroller); c.add(messageText); c.add(conIcon); c.add(secIcon); c.add(bottomText); userList.addMouseListener(myMouseListener); messageText.addKeyListener(myKeyListener); bottomText.addMouseListener(myMouseListener); users = new ArrayList(); ignores = new ArrayList(5); afks = new ArrayList(5); admins = new ArrayList(5); history = new CommandHistory(10); admin = false; channels = new Hashtable(); privates = new PrivateMsg(this); showUserStatus = false; myColors[0] = new Color(200, 0, 0); myColors[1] = new Color(0, 150, 0); myColors[2] = new Color(0, 0, 200); rect = new Rectangle(0, 0, 1, 1); String opening = "<font color=#333333>" + "==================================<br>" + "Welcome to LlamaChat " + VERSION + "<br>" + "If you need assistance, type \\help<br>" + "Enjoy your stay!<br>" + "Maestria Aplicada en Redes<br>" + "==================================<br></font>"; HTMLDocument doc = (HTMLDocument) mainChat.getDocument(); HTMLEditorKit kit = (HTMLEditorKit) mainChat.getEditorKit(); try { kit.insertHTML(doc, doc.getLength(), opening, 0, 0, HTML.Tag.FONT); } catch (Throwable t) { t.printStackTrace(System.out); } // validate the name if (!username.matches("[\\w_-]+?")) { error( "username contains invalid characters, changing to " + "'invalid' for now. " + "Type \\rename to chose a new name"); username = "******"; } if (username.length() > 10) { username = username.substring(0, 10); error("username too long, changed to " + username); } connect(); }
@Analyzer( name = "Event Data Attribute Visualizer", names = {"Log"}) public JComponent analyze(LogReader log) { /* * this plugin takes a log, shows a list of available data-attributes * and a list of cases After selecting a data-attribute (and possibly a * case) a graph is made of the value of the data-attribute against * either time or against the sequence of events. * * input: log with data attributes gui-input: select a data-attribute, * choose time or event-sequence, and possibly a case * * internally : if not caseselected -> scatterplot of values against * time/event-number else show graph for value against time/event-number * * createGraph : check number / string */ mylog = log; mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); chartPanel = new JPanel(); chartPanel.setLayout(new BoxLayout(chartPanel, BoxLayout.PAGE_AXIS)); optionsPanel = new JPanel(); optionsPanel.setLayout(new SpringLayout()); JLabel attributelabel = new JLabel("Select attributes to use"); attributeslist = new JList(getAttributes()); attributeslist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); attributeslist.setLayoutOrientation(JList.VERTICAL); optionsPanel.add(attributelabel); optionsPanel.add(attributeslist); JLabel xlabel = new JLabel("Chart type"); String[] xvalues = new String[4]; xvalues[0] = " Attribute values against event sequence"; xvalues[1] = "Attribute values against timestamps"; xvalues[2] = "Average attribute values against event sequence"; xvalues[3] = "Average attribute values against timestamps"; xbox = new JComboBox(xvalues); xbox.setMaximumSize(xbox.preferredSize()); xbox.setSelectedIndex(1); xbox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { JComboBox cb = (JComboBox) e.getSource(); if (cb.getSelectedIndex() == 3) { BSpinner.setVisible(true); } else { BSpinner.setVisible(false); } }; }); optionsPanel.add(xlabel); optionsPanel.add(xbox); JLabel timelabel = new JLabel("show time by "); String[] timevalues = new String[4]; timevalues[0] = "second"; timevalues[1] = "minute"; timevalues[2] = "hour"; timevalues[3] = "day"; timebox = new JComboBox(timevalues); timebox.setMaximumSize(timebox.preferredSize()); timebox.setSelectedIndex(1); optionsPanel.add(timelabel); optionsPanel.add(timebox); SpinnerModel Bmodel = new SpinnerNumberModel(10, 2, 1000000, 1); BSpinner = new JSpinner(Bmodel); JLabel BLabel = new JLabel("Select histogram barsize"); JLabel B2Label = new JLabel("used for average against timestamps"); BSpinner.setMaximumSize(BSpinner.preferredSize()); BSpinner.setVisible(false); optionsPanel.add(BLabel); optionsPanel.add(B2Label); optionsPanel.add(BSpinner); JButton updatebutton = new JButton("update"); updatebutton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Object[] sels = attributeslist.getSelectedValues(); String[] els = new String[sels.length]; for (int i = 0; i < sels.length; i++) { els[i] = sels[i].toString(); } long timesize = 1000; switch (timebox.getSelectedIndex()) { case 0: timesize = 1000; break; case 1: timesize = 1000 * 60; break; case 2: timesize = 1000 * 60 * 60; break; case 3: timesize = 1000 * 60 * 60 * 24; break; } String xname = null; JFreeChart mychart = null; if (xbox.getSelectedIndex() == 0) { data = getDataAttributes(els, false, timesize); xname = "Event sequence"; mychart = ChartFactory.createScatterPlot( "Scatterplot of all values", xname, "attribute value", data, PlotOrientation.VERTICAL, true, true, false); } else if (xbox.getSelectedIndex() == 1) { data = getDataAttributes(els, true, timesize); xname = "Time(" + timebox.getSelectedItem() + ") since beginning of the process"; mychart = ChartFactory.createScatterPlot( "Scatterplot of all values", xname, "attribute value", data, PlotOrientation.VERTICAL, true, true, false); } else if (xbox.getSelectedIndex() == 2) { xname = "Event sequence"; data = getHistrogrammedDataAttributes(els, 1, 1); mychart = ChartFactory.createXYLineChart( "Average values", xname, "attribute value", data, PlotOrientation.VERTICAL, true, true, false); mychart.setBackgroundPaint(Color.white); XYPlot plot = mychart.getXYPlot(); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); DeviationRenderer renderer = new DeviationRenderer(true, true); renderer.setSeriesStroke( 0, new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); renderer.setSeriesStroke(1, new BasicStroke(2.0f)); renderer.setSeriesStroke(2, new BasicStroke(2.0f)); renderer.setSeriesStroke(3, new BasicStroke(2.0f)); renderer.setSeriesFillPaint(0, Color.red); renderer.setSeriesFillPaint(1, Color.blue); renderer.setSeriesFillPaint(2, Color.green); renderer.setSeriesFillPaint(3, Color.orange); plot.setRenderer(renderer); // change the auto tick unit selection to integer units // only... NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); // yAxis.setAutoRangeIncludesZero(false); yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); NumberAxis xAxis = (NumberAxis) plot.getDomainAxis(); xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); } else { xname = "Time(" + timebox.getSelectedItem() + "s) since beginning of the process"; data = getHistrogrammedDataAttributes( els, ((Integer) BSpinner.getValue()) * timesize, timesize); mychart = ChartFactory.createXYLineChart( "Average values", xname, "attribute value", data, PlotOrientation.VERTICAL, true, true, false); mychart.setBackgroundPaint(Color.white); XYPlot plot = mychart.getXYPlot(); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); DeviationRenderer renderer = new DeviationRenderer(true, true); renderer.setSeriesStroke( 0, new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); renderer.setSeriesStroke(1, new BasicStroke(2.0f)); renderer.setSeriesStroke(2, new BasicStroke(2.0f)); renderer.setSeriesStroke(3, new BasicStroke(2.0f)); renderer.setSeriesFillPaint(0, Color.red); renderer.setSeriesFillPaint(1, Color.blue); renderer.setSeriesFillPaint(2, Color.green); renderer.setSeriesFillPaint(3, Color.orange); plot.setRenderer(renderer); // change the auto tick unit selection to integer units // only... NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); // yAxis.setAutoRangeIncludesZero(false); yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); } ChartPanel mychartpanel = new ChartPanel(mychart); mychartpanel.setBackground(Color.white); chartPanel.removeAll(); chartPanel.add(mychartpanel); chartPanel.updateUI(); }; }); optionsPanel.add(updatebutton); JSplitPane splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, optionsPanel, chartPanel); SpringUtils.makeCompactGrid( optionsPanel, 10, 1, // rows, cols 6, 2, // initX, initY 6, 2); // xPad, yPad mainPanel.add(splitPanel, BorderLayout.CENTER); return mainPanel; }