📄 reminderviewpanel.java
字号:
/* CRMS, customer relationship management system Copyright (C) 2003 Service To Youth Council This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA For further information contact the SYC ICT department on GPL@syc.net.au 98 Kermode Street North Adelaide South Australia SA 5006 +61 (0)8 8367 0755 *//* * ReminderViewPanel.java * * Created on 27 March 2003, 23:48 */package crms.applet;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;import javax.swing.border.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.text.*;import java.applet.*;import java.net.*;import crms.util.*;import crms.ui.*;import crms.vo.*;import crms.module.ReminderModule;import org.w3c.dom.*;/** * * @author dmurphy */public class ReminderViewPanel extends CRMSPanel implements CallbackDestination { JPanel titlePanel = new JPanel(); JPanel bodyPanel = new JPanel(); JLabel titleLabel = new JLabel(); JLabel lblMessage = new JLabel("Loading reminder details..."); ReminderTableModel reminderModel = new ReminderTableModel(); JTable reminderTable = new JTable(reminderModel) { public TableCellRenderer getCellRenderer(int row, int column) { final Reminder r = reminderModel.getReminder(row); return new DefaultTableCellRenderer() { final Reminder theReminder = r; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { // this is annoying if there are lots of reminders // System.out.println("Creating JLabel as renderer..."); Component parent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (isSelected) { //parent.setForeground(Color.WHITE); } else { int style = 0; // read status if (!theReminder.getOwnerHasRead()) { style += Font.BOLD; } // owner if (theReminder.getCreator().compareTo(ServerFactory.getInstance().getUser()) == 0) { style += Font.ITALIC; } if (style > 0) parent.setFont(parent.getFont().deriveFont(style)); // the reminder is due within 2 days /*if (theReminder.getDaysTillDue() <= 2 && theReminder.getDaysTillDue() > 0) { parent.setFont(parent.getFont().deriveFont(Font.BOLD)); } */ float t = -theReminder.getDaysTillDue(); // t <= -5 (5 days before it is due) if (t <= -5.0f) { parent.setForeground(Color.BLACK); } else if ((int)t <= 1.0f) { // priorities override the colour if (theReminder.getReminderRate() >= 8) { parent.setForeground(Color.RED); } else { parent.setForeground(new Color(0x0f7500)); // dark green } } else { parent.setForeground(Color.DARK_GRAY); } /* // today if (theReminder.getDaysTillDue() == 0) { parent.setForeground(Color.BLUE); } // over due if (theReminder.getDaysTillDue() < 0) { parent.setForeground(Color.red); } // way over due if (theReminder.getDaysTillDue() < -7) { parent.setBackground(Color.red); parent.setForeground(Color.white); } */ /*if (!theReminder.getOwner().equals(PanelManager.getInstance().getAuthenticatedUser()) && theReminder.isApproved() != true ) { parent.setBackground(Color.YELLOW); }*/ } return parent; } }; // else...// return super.getCellRenderer(row, column); }}; JScrollPane scrollPane = new JScrollPane(reminderTable); static SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); static SimpleDateFormat tf = new SimpleDateFormat("h:mm a"); //JButton buttonShow = new JButton("Show More >>"); boolean restrictReminderCount = false; /** Creates a new instance of ReminderViewPanel */ public ReminderViewPanel() { } public ReminderViewPanel(boolean restrictCount) { this.restrictReminderCount = restrictCount; } public void callback(Object source, int mode, Object data) { if (source instanceof ReminderEditWindow) { if ((mode == ReminderEditWindow.REMINDER_UPDATE) || (mode == ReminderEditWindow.REMINDER_DELETE)) { boolean found = false; java.util.List reminders = reminderModel.reminders; ListIterator i = reminders.listIterator(); int reminderID = -1; if (data instanceof Integer) { reminderID = ((Integer)data).intValue(); } else { reminderID = ((Reminder)data).getReminderID(); } while (i.hasNext()) { Reminder r = (Reminder)i.next(); if (reminderID == r.getReminderID()) { if (mode == ReminderEditWindow.REMINDER_UPDATE) { i.set(data); } else if (mode == ReminderEditWindow.REMINDER_DELETE) { i.remove(); } found = true; break; } } if (found == false) { reminders.add(0, data); } updateList(); } } // end if ReminderEditWindow } public void init() { final CallbackDestination thisobj = this; setLayout(new BorderLayout()); setBackground(Color.WHITE); titleLabel.setFont(new java.awt.Font("Serif", 1, 18)); titleLabel.setText("Reminders"); titleLabel.setBackground(Color.WHITE); titleLabel.setHorizontalAlignment(JLabel.CENTER); titlePanel.setLayout(new BorderLayout()); titlePanel.setBackground(Color.WHITE); titlePanel.add(titleLabel, BorderLayout.CENTER); add(titlePanel, BorderLayout.NORTH);// if (restrictReminderCount) {// titlePanel.add(buttonShow, BorderLayout.EAST);// } scrollPane.getViewport().setBackground(Color.WHITE); lblMessage.setForeground(Color.GRAY); lblMessage.setForeground(Color.GRAY); lblMessage.setVerticalAlignment(JLabel.TOP); lblMessage.setHorizontalAlignment(JLabel.CENTER); java.util.Timer timer = new java.util.Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void run() { refreshData(); } }, 100, 1000 * 60 * 15); bodyPanel.setLayout(new BorderLayout()); bodyPanel.setBackground(Color.WHITE); bodyPanel.setBorder(new EmptyBorder(0,10,0,10)); // bodyPanel.add(scrollPane, BorderLayout.CENTER); bodyPanel.add(lblMessage, BorderLayout.CENTER); bodyPanel.setBorder(new EmptyBorder(0,10,0,10)); scrollPane.setMinimumSize(new Dimension(0,0)); reminderTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent ev) { if (ev.getButton() == MouseEvent.BUTTON1 && ev.getClickCount() == 2) { processSelectedReminder(); } } }); // prepare the button panel JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); buttonPanel.setBackground(Color.WHITE); if (restrictReminderCount == false) { JButton buttonAddReminder = new JButton("Add"); buttonAddReminder.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) { //ReminderEditPanel panel = new ReminderEditPanel(); //PanelManager.getInstance().activatePanel(panel); ReminderEditWindow window = new ReminderEditWindow(); window.setDestination(thisobj); window.display(); } }); JButton editButton = new JButton("Edit"); editButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) { processSelectedReminder(); } } ); JButton exportButton = new JButton("Export"); exportButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) { processExport(); } } ); /*JButton backButton = new JButton("Back"); backButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) { PanelManager.getInstance().activatePanel(new HomePanel()); } });*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -