Author: jflesch
Date: 2007-07-23 18:56:58 +0000 (Mon, 23 Jul 2007)
New Revision: 14285

Modified:
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java
Log:
Add a keyboard shortcut : 'Alt-N' => 'next unread message'

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java        
2007-07-23 17:56:10 UTC (rev 14284)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java        
2007-07-23 18:56:58 UTC (rev 14285)
@@ -17,7 +17,9 @@
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;

+import java.awt.event.KeyEvent;

+
 import thaw.gui.IconBox;
 import thaw.core.I18n;
 import thaw.core.Logger;
@@ -67,7 +69,6 @@

                panel = new JPanel(new BorderLayout(5, 5));

-
                /* messages Panel */

                msgsPanel = new JPanel(new BorderLayout(0, 20));
@@ -93,6 +94,7 @@
                nextUnread = new JButton("", IconBox.minNextUnread);
                
nextUnread.setToolTipText(I18n.getMessage("thaw.plugin.miniFrost.nextUnread"));
                nextUnread.addActionListener(this);
+
                buttonPanel.add(nextUnread);

                JPanel northPanel = new JPanel(new BorderLayout());
@@ -102,9 +104,17 @@


                panel.add(northPanel, BorderLayout.NORTH);
+       }

+       public void hided() {
+               nextUnread.setMnemonic(KeyEvent.VK_Z);
        }

+       public void redisplayed() {
+               nextUnread.setMnemonic(KeyEvent.VK_N);
+               nextUnread.requestFocus();
+       }
+
        public void setMessage(Message msg) {
                this.msg = msg;
                subMsgs = msg.getSubMessages();
@@ -269,6 +279,20 @@
        }


+       private void nextUnread() {
+               if (msg == null) {
+                       Logger.warning(this, "No message selected atm ; can't 
get the next unread message");
+                       return;
+               }
+               Message newMsg = msg.getBoard().getNextUnreadMessage();
+               if (newMsg != null) {
+                       setMessage(newMsg);
+                       newMsg.setRead(true);
+                       mainPanel.getMessageTreeTable().refresh();
+                       mainPanel.getBoardTree().refresh(newMsg.getBoard());
+               }
+       }
+
        public void actionPerformed(ActionEvent e) {
                if (e.getSource() == back) {

@@ -276,17 +300,7 @@

                } else if (e.getSource() == nextUnread) {

-                       if (msg == null) {
-                               Logger.warning(this, "No message selected atm ; 
can't get the next unread message");
-                               return;
-                       }
-                       Message newMsg = msg.getBoard().getNextUnreadMessage();
-                       if (newMsg != null) {
-                               setMessage(newMsg);
-                               newMsg.setRead(true);
-                               mainPanel.getMessageTreeTable().refresh();
-                               
mainPanel.getBoardTree().refresh(newMsg.getBoard());
-                       }
+                       nextUnread();

                } else if (e.getSource() == actions) {


Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java    
2007-07-23 17:56:10 UTC (rev 14284)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java    
2007-07-23 18:56:58 UTC (rev 14285)
@@ -41,9 +41,9 @@

 import java.awt.Font;

+import java.awt.event.KeyEvent;


-
 import thaw.gui.Table;
 import thaw.gui.IconBox;
 import thaw.core.I18n;
@@ -193,15 +193,23 @@
                mainPanel.getBoardTree().addObserver(this);
        }

-       /**
-        * due to a swing bug ?
-        */
+
+       public void hided() {
+               nextUnread.setMnemonic(KeyEvent.VK_Z);
+       }
+
        public void redisplayed() {
+               /**
+                * due to a swing bug ?
+                */
                
table.getColumnModel().getColumn(0).setPreferredWidth(FIRST_COLUMN_SIZE);
                table.getColumnModel().getColumn(0).setResizable(false);
                
table.getColumnModel().getColumn(0).setPreferredWidth(FIRST_COLUMN_SIZE);
                
table.getColumnModel().getColumn(0).setMinWidth(FIRST_COLUMN_SIZE);
                
table.getColumnModel().getColumn(0).setMaxWidth(FIRST_COLUMN_SIZE);
+
+               nextUnread.setMnemonic(KeyEvent.VK_N);
+               nextUnread.requestFocus();
        }

        public JPanel getPanel() {

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java      
2007-07-23 17:56:10 UTC (rev 14284)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java      
2007-07-23 18:56:58 UTC (rev 14285)
@@ -52,23 +52,31 @@

        public void displayMessageTable() {
                saveState();
+               messagePanel.hided();
                mainSplit.setRightComponent(messageTreeTable.getPanel());
+               mainSplit.validate();
+
                messageTreeTable.redisplayed();
-               mainSplit.validate();
+
                loadState();
        }

        public void displayMessage() {
                saveState();
+               messageTreeTable.hided();
                mainSplit.setRightComponent(messagePanel.getPanel());
+               messagePanel.redisplayed();
                mainSplit.validate();

-               if (messagePanel.getMessage() != null) {
+               if (messagePanel.getMessage() != null
+                   && !messagePanel.getMessage().isRead()) {
                        messagePanel.getMessage().setRead(true);
                        messageTreeTable.refresh(messagePanel.getMessage());
                        boardTree.refresh(messagePanel.getMessage().getBoard());
                }

+               messagePanel.redisplayed();
+
                loadState();
        }



Reply via email to