📄 reminderviewpanel.java
字号:
buttonPanel.add(buttonAddReminder); buttonPanel.add(editButton); buttonPanel.add(exportButton); //buttonPanel.add(backButton); } add(bodyPanel, BorderLayout.CENTER); add(buttonPanel, BorderLayout.SOUTH); //refreshData(); CRMSUtil.resizeTable(reminderTable); setCurrentPanel(this); } public void processSelectedReminder() { int selected = reminderTable.getSelectedRow(); if (selected < 0) { JOptionPane.showMessageDialog(this, "Please select a reminder to edit.", "Reminder List", JOptionPane.WARNING_MESSAGE); return; } Reminder r = (Reminder) reminderModel.reminders.get(reminderTable.getSelectedRow()); r.setOwnerHasRead(true); updateList(); System.out.println("Calling reminder edit for: " + r.getReminderID()); //PanelManager.getInstance().activatePanel(new ReminderEditPanel(r.getReminderID())); ReminderEditWindow window = new ReminderEditWindow(); window.setDestination(this); window.setReminder(r); window.display(); } public void processExport() { PanelManager manager = PanelManager.getInstance(); AppletContext context = manager.getAppletContext(); if (context == null) { JOptionPane.showMessageDialog(this, "This function requires the system to be running in an applet context.", "Expore List", JOptionPane.ERROR_MESSAGE); return; } URL url = manager.getCodeBase(); URL toURL = null; FileAttachment attach = new FileAttachment(); try { StringBuffer urlString = new StringBuffer(); urlString.append("http://"); urlString.append(url.getHost()); urlString.append(":"); urlString.append(url.getPort()); urlString.append("/crms/export"); urlString.append("?user=" + ServerFactory.getInstance().getUser()); urlString.append("&type=" + EntityType.REMINDER_EXPORT.getCode()); toURL = new URL(urlString.toString()); } catch (MalformedURLException ex) { ex.printStackTrace(); } context.showDocument(toURL); } void refreshData() { reminderModel.clear(); Server server = ServerFactory.getInstance().getServer(); ServerCommand command = new ServerCommand(); if (restrictReminderCount) { command.setKey(ReminderModule.REMINDERS_SHOW_LIMITED); } else { command.setKey(ReminderModule.REMINDERS_SHOW); } ServerResponse result = server.sendCommand(command); ArrayList reminderList = (ArrayList) result.getPart("reminders"); System.out.println("Got " + reminderList.size() + " reminders..."); reminderModel.clear(); if (reminderList.size() == 0) { lblMessage.setText("There are no reminders for you"); return; } int max = reminderList.size(); if (restrictReminderCount) { max = Math.min(max,5); } for (int i=0; i < max; i++) { Reminder reminder = (Reminder) reminderList.get(i); if (reminder != null) { reminderModel.addReminder(reminder); } } // swap to the table when ready updateList(); } public void updateList() { if (lblMessage != null) { bodyPanel.remove(lblMessage); bodyPanel.add(scrollPane, BorderLayout.CENTER); lblMessage = null; bodyPanel.revalidate(); } reminderTable.tableChanged(new TableModelEvent(reminderModel)); } public Class getPanel(int i) { return null; } class ReminderTableModel implements TableModel { ArrayList reminders = new ArrayList(); ArrayList listeners = new ArrayList(); String headers[] = { "Priority", "Date", "Time", "From", "To", //"Number", "Reminder" }; /** Adds a listener to the list that is notified each time a change * to the data model occurs. * * @param l the TableModelListener * */ public void addTableModelListener(TableModelListener l) { listeners.add(l); } /** Returns the most specific superclass for all the cell values * in the column. This is used by the <code>JTable</code> to set up a * default renderer and editor for the column. * * @param columnIndex the index of the column * @return the common ancestor class of the object values in the model. * */ public Class getColumnClass(int columnIndex) { return String.class; } /** Returns the number of columns in the model. A * <code>JTable</code> uses this method to determine how many columns it * should create and display by default. * * @return the number of columns in the model * @see #getRowCount * */ public int getColumnCount() { return headers.length; } /** Returns the name of the column at <code>columnIndex</code>. This is used * to initialize the table's column header name. Note: this name does * not need to be unique; two columns in a table can have the same name. * * @param columnIndex the index of the column * @return the name of the column * */ public String getColumnName(int columnIndex) { return headers[columnIndex]; } /** Returns the number of rows in the model. A * <code>JTable</code> uses this method to determine how many rows it * should display. This method should be quick, as it * is called frequently during rendering. * * @return the number of rows in the model * @see #getColumnCount * */ public int getRowCount() { return reminders.size(); } /** Returns the value for the cell at <code>columnIndex</code> and * <code>rowIndex</code>. * * @param rowIndex the row whose value is to be queried * @param columnIndex the column whose value is to be queried * @return the value Object at the specified cell * */ public Object getValueAt(int rowIndex, int columnIndex) { Reminder reminder = (Reminder) reminders.get(rowIndex); switch(columnIndex) { case 0: return Integer.toString(reminder.getReminderRate()); case 1: return df.format(reminder.getReminderDate()); case 2: return tf.format(reminder.getReminderDate()); case 3: return reminder.getCreator(); case 4: return reminder.getOwner(); case 5: String msg = reminder.getReminderMessage(); return msg.trim().length() == 0 ? "(No message entered)" : msg; default: break; } return null; } /** Returns true if the cell at <code>rowIndex</code> and * <code>columnIndex</code> * is editable. Otherwise, <code>setValueAt</code> on the cell will not * change the value of that cell. * * @param rowIndex the row whose value to be queried * @param columnIndex the column whose value to be queried * @return true if the cell is editable * @see #setValueAt * */ public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } /** Removes a listener from the list that is notified each time a * change to the data model occurs. * * @param l the TableModelListener * */ public void removeTableModelListener(TableModelListener l) { listeners.remove(l); } /** Sets the value in the cell at <code>columnIndex</code> and * <code>rowIndex</code> to <code>aValue</code>. * * @param aValue the new value * @param rowIndex the row whose value is to be changed * @param columnIndex the column whose value is to be changed * @see #getValueAt * @see #isCellEditable * */ public void setValueAt(Object aValue, int rowIndex, int columnIndex) { // Read Only } public void addReminder(Reminder reminder) { reminders.add(reminder); } public void clear() { reminders.clear(); } public Reminder getReminder(int i) { return (Reminder) reminders.get(i); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -