public void refresh(Slice[] sliceData) { sliceListModel.clear(); if (sliceData != null) sliceListModel.addAll(sliceData); sliceList.setSelectedIndex(0); updateDisplays(); }
@Override protected void itemsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs<T> e) { super.itemsCollectionChanged(sender, e); resetIsEmpty(); updatePagingAvailability(); }
@Override protected void itemsChanged() { super.itemsChanged(); resetIsEmpty(); updatePagingAvailability(); }
@Override public void setComparator(Comparator<? super T> comparator, boolean sortAscending) { super.setComparator(comparator, sortAscending); Collection<T> items = getItems(); if (items != null) { Collection<T> maybeSortedItems = (comparator != null) ? sortItems(items) : new ArrayList<>(items); setItems(maybeSortedItems); } }
@Override public void eventRaised(Event<? extends EventArgs> ev, Object sender, EventArgs args) { super.eventRaised(ev, sender, args); entityModel.eventRaised(ev, sender, args); if (ev.matchesDefinition(RegistrationResult.RetrievedEventDefinition)) { asyncResult_Retrieved(); } if (ev.matchesDefinition(ProvideTickEvent.definition)) { syncSearch(); } }
@Override public void executeCommand(UICommand command) { super.executeCommand(command); if (command == getSearchCommand()) { search(); } else if (command == getSearchNextPageCommand()) { searchNextPage(); } else if (command == getSearchPreviousPageCommand()) { searchPreviousPage(); } else if (command == getForceRefreshCommand()) { forceRefresh(); } if (command != null && command.isAutoRefresh()) { getTimer().fastForward(); } }
/** Create the frame. */ public Slices(MainGUI parent, Slice[] sliceData) { mainGUI = parent; setLayout(new BorderLayout(0, 0)); JScrollPane scrollPane = new JScrollPane(); sliceListModel = new SortedListModel<Slice>(); if (sliceData != null) sliceListModel.addAll(sliceData); sliceList = new JList(sliceListModel); sliceList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scrollPane.setViewportView(sliceList); TitledBorder titled = new TitledBorder("List of Slices"); JPanel panelButtons = new JPanel(); add(panelButtons, BorderLayout.SOUTH); JButton btnAddMember = new JButton("Add Member"); btnAddMember.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (sliceList.isSelectionEmpty()) JOptionPane.showMessageDialog( Slices.this, "Select a slice from list to add member.", "Add Member", JOptionPane.INFORMATION_MESSAGE); else showAddMemberDialog(); } }); JButton btnNewSlice = new JButton("New Slice"); btnNewSlice.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { Slice d = showNewSliceDialog(); if (d != null) { d = SliceAuthorityAPI.addSlice(d); if (d == null) showErrorMessage(); else { sliceListModel.add(d); sliceList.setSelectedValue(d, true); updateDisplays(); } } } }); panelButtons.add(btnNewSlice); panelButtons.add(btnAddMember); JButton btnRemoveMember = new JButton("Remove Member"); btnRemoveMember.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (memberTable.getSelectedRow() >= 0) { Slice slice = (Slice) sliceList.getSelectedValue(); int row = memberTable.convertRowIndexToModel(memberTable.getSelectedRow()); String role = slice.members.get(row).role; if (role.toUpperCase().equals("LEAD")) { JOptionPane.showMessageDialog( Slices.this, "Sorry, a member with LEAD role cannot be removed.", "Remove Member", JOptionPane.INFORMATION_MESSAGE); } else { boolean rsp = SliceAuthorityAPI.removeMember( slice.urn, slice.members.get(row).urn, slice.members.get(row).type); if (rsp) { slice.members.remove(row); tableModel.remove(row); } else showErrorMessage(); } } else JOptionPane.showMessageDialog( Slices.this, "Select a member from list to remove.", "Remove Member", JOptionPane.INFORMATION_MESSAGE); } }); panelButtons.add(btnRemoveMember); JButton btnRole = new JButton("Alter Role"); btnRole.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (memberTable.getSelectedRow() >= 0) showChangeRoleDialog(); else JOptionPane.showMessageDialog( Slices.this, "Select the member from list to change role.", "Alter role", JOptionPane.INFORMATION_MESSAGE); } }); panelButtons.add(btnRole); scrollPane.setBorder(titled); scrollPane.setPreferredSize(new Dimension(300, 400)); JSplitPane splitPane = new JSplitPane(); splitPane.setLeftComponent(scrollPane); add(splitPane, BorderLayout.CENTER); JPanel rightPanel = new JPanel(); splitPane.setRightComponent(rightPanel); rightPanel.setLayout(new BorderLayout(0, 0)); JPanel panelInfo = new JPanel(); rightPanel.add(panelInfo, BorderLayout.NORTH); GridBagLayout gbl_panelInfo = new GridBagLayout(); gbl_panelInfo.rowWeights = new double[] {0.0, 0.0, 0.0, 1.0}; gbl_panelInfo.columnWeights = new double[] {0.0, 1.0}; panelInfo.setLayout(gbl_panelInfo); JLabel lblURN = new JLabel("URN:"); lblURN.setHorizontalAlignment(SwingConstants.TRAILING); GridBagConstraints gbc_lblURN = new GridBagConstraints(); gbc_lblURN.insets = new Insets(5, 0, 5, 5); gbc_lblURN.weightx = 0.01; gbc_lblURN.anchor = GridBagConstraints.EAST; gbc_lblURN.gridx = 0; gbc_lblURN.gridy = 0; panelInfo.add(lblURN, gbc_lblURN); textFieldSliceURN = new JTextField(); textFieldSliceURN.setEditable(false); GridBagConstraints gbc_textFieldSliceURN = new GridBagConstraints(); gbc_textFieldSliceURN.insets = new Insets(5, 0, 5, 0); gbc_textFieldSliceURN.weightx = 0.99; gbc_textFieldSliceURN.fill = GridBagConstraints.HORIZONTAL; gbc_textFieldSliceURN.gridx = 1; gbc_textFieldSliceURN.gridy = 0; panelInfo.add(textFieldSliceURN, gbc_textFieldSliceURN); JLabel lblNewLabel = new JLabel("Project:"); GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); gbc_lblNewLabel.insets = new Insets(10, 0, 5, 5); gbc_lblNewLabel.weightx = 0.01; gbc_lblNewLabel.anchor = GridBagConstraints.EAST; gbc_lblNewLabel.gridx = 0; gbc_lblNewLabel.gridy = 1; panelInfo.add(lblNewLabel, gbc_lblNewLabel); textFieldProjectURN = new JTextField(); textFieldProjectURN.setEditable(false); GridBagConstraints gbc_textFieldProjectURN = new GridBagConstraints(); gbc_textFieldProjectURN.insets = new Insets(10, 0, 5, 0); gbc_textFieldProjectURN.weightx = 0.99; gbc_textFieldProjectURN.fill = GridBagConstraints.HORIZONTAL; gbc_textFieldProjectURN.gridx = 1; gbc_textFieldProjectURN.gridy = 1; panelInfo.add(textFieldProjectURN, gbc_textFieldProjectURN); JLabel lblCreation = new JLabel("Creation:"); GridBagConstraints gbc_lblCreation = new GridBagConstraints(); gbc_lblCreation.anchor = GridBagConstraints.EAST; gbc_lblCreation.insets = new Insets(10, 0, 0, 5); gbc_lblCreation.gridx = 0; gbc_lblCreation.gridy = 2; panelInfo.add(lblCreation, gbc_lblCreation); textFieldCreation = new JTextField(); textFieldCreation.setEditable(false); GridBagConstraints gbc_textFieldCreation = new GridBagConstraints(); gbc_textFieldCreation.insets = new Insets(10, 0, 5, 0); gbc_textFieldCreation.weightx = 0.99; gbc_textFieldCreation.fill = GridBagConstraints.HORIZONTAL; gbc_textFieldCreation.gridx = 1; gbc_textFieldCreation.gridy = 2; panelInfo.add(textFieldCreation, gbc_textFieldCreation); JLabel lblNewLabel_1 = new JLabel("Expiration:"); GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints(); gbc_lblNewLabel_1.insets = new Insets(10, 0, 0, 5); gbc_lblNewLabel_1.weightx = 0.01; gbc_lblNewLabel_1.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_1.gridx = 0; gbc_lblNewLabel_1.gridy = 3; panelInfo.add(lblNewLabel_1, gbc_lblNewLabel_1); textFieldExpiry = new JTextField(); textFieldExpiry.setEditable(false); GridBagConstraints gbc_textFieldExpiry = new GridBagConstraints(); gbc_textFieldExpiry.insets = new Insets(10, 0, 0, 0); gbc_textFieldExpiry.weightx = 0.99; gbc_textFieldExpiry.fill = GridBagConstraints.HORIZONTAL; gbc_textFieldExpiry.gridx = 1; gbc_textFieldExpiry.gridy = 3; panelInfo.add(textFieldExpiry, gbc_textFieldExpiry); JLabel lblSliceDescription = new JLabel("Description:"); GridBagConstraints gbc_lblSliceDescription = new GridBagConstraints(); gbc_lblSliceDescription.insets = new Insets(10, 0, 20, 5); gbc_lblSliceDescription.gridx = 0; gbc_lblSliceDescription.gridy = 4; panelInfo.add(lblSliceDescription, gbc_lblSliceDescription); textAreaDesc = new JTextArea(); textAreaDesc.setEditable(false); GridBagConstraints gbc_textArea = new GridBagConstraints(); gbc_textArea.fill = GridBagConstraints.BOTH; gbc_textArea.insets = new Insets(10, 0, 20, 5); gbc_textArea.gridx = 1; gbc_textArea.gridy = 4; gbc_textArea.ipady = 40; panelInfo.add(new JScrollPane(textAreaDesc), gbc_textArea); tableModel = new CustomTableModel(null, new String[] {"Member", "Role"}); memberTable = new JTable(tableModel); memberTable.setAutoCreateRowSorter(true); memberTable.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { JTable t = (JTable) e.getSource(); String urn = (String) (t.getValueAt(t.getSelectedRow(), t.getSelectedColumn())); if (urn.startsWith("urn:")) { String username = urn.substring(urn.lastIndexOf('+') + 1); mainGUI.setSelectedMember(username); } } } }); memberTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); memberTable.getColumnModel().getColumn(0).setPreferredWidth(300); memberTable.getColumnModel().getColumn(1).setPreferredWidth(75); memberTable.getColumnModel().getColumn(1).setMaxWidth(75); JScrollPane memberScrollPane = new JScrollPane(memberTable); memberScrollPane.setToolTipText("Double click an entry to see its details"); rightPanel.add(memberScrollPane, BorderLayout.CENTER); sliceList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { if (!arg0.getValueIsAdjusting()) { updateDisplays(); } } }); // Select first item for display if (sliceListModel.getSize() > 0) sliceList.setSelectedIndex(0); }
public Object[] getSliceArray() { return sliceListModel.toArray(); }
@Override public void setSelectedItem(T value) { setIsQueryFirstTime(true); super.setSelectedItem(value); setIsQueryFirstTime(false); }