Author: jflesch
Date: 2007-07-23 15:44:29 +0000 (Mon, 23 Jul 2007)
New Revision: 14278

Modified:
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java
Log:
Add support for the actions in the message view

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java        
2007-07-23 15:30:50 UTC (rev 14277)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java        
2007-07-23 15:44:29 UTC (rev 14278)
@@ -33,8 +33,8 @@
                "",
                I18n.getMessage("thaw.plugin.miniFrost.archivate"),
                I18n.getMessage("thaw.plugin.miniFrost.reply"),
-               I18n.getMessage("thaw.plugin.miniFrost.foldAll"),
-               I18n.getMessage("thaw.plugin.miniFrost.unfoldAll")
+               I18n.getMessage("thaw.plugin.miniFrost.unfoldAll"),
+               I18n.getMessage("thaw.plugin.miniFrost.foldAll")
        };

        public final static int DEFAULT_UNFOLDED = 2;
@@ -57,7 +57,9 @@
        private JButton back;
        private JButton nextUnread;

+       private Vector subPanels;

+
        public MessagePanel(MiniFrostPanel mainPanel) {
                this.mainPanel = mainPanel;

@@ -115,6 +117,7 @@
        }


+
        protected class SubMessagePanel extends JPanel implements 
ActionListener {
                private JButton upDownButton;
                private boolean retracted;
@@ -172,24 +175,30 @@
                }


-               public void actionPerformed(ActionEvent e) {
-                       if (e.getSource() == upDownButton) {
-                               if (retracted) {
-                                       area = getTextArea(msg.getMessage());
-                                       this.add(area, BorderLayout.CENTER);
+               public void setRetracted(boolean retracted) {
+                       if (!retracted) {
+                               area = getTextArea(msg.getMessage());
+                               this.add(area, BorderLayout.CENTER);

-                                       upDownButton.setIcon(IconBox.minUp);
-                               } else {
+                               upDownButton.setIcon(IconBox.minUp);
+                       } else {
+                               if (area != null)
                                        this.remove(area);
-                                       area = null;
-                                       upDownButton.setIcon(IconBox.minDown);
-                               }
+                               area = null;
+                               upDownButton.setIcon(IconBox.minDown);
+                       }

-                               retracted = !retracted;
+                       this.retracted = retracted;

-                               this.revalidate();
-                               panel.revalidate();
-                               msgsPanel.revalidate();
+                       this.revalidate();
+                       panel.revalidate();
+                       msgsPanel.revalidate();
+               }
+
+
+               public void actionPerformed(ActionEvent e) {
+                       if (e.getSource() == upDownButton) {
+                               setRetracted(!retracted);
                        }
                }

@@ -197,6 +206,7 @@


        public void refresh() {
+               subPanels = new Vector();

                /* will imbricate BorderLayout */
                /* it's dirty, but it should work */
@@ -213,6 +223,8 @@
                        SubMessagePanel panel = new SubMessagePanel(subMsg,
                                                                    (i + 
DEFAULT_UNFOLDED) < subMsgs.size());

+                       subPanels.add(panel);
+
                        if (iPanel == null) {
                                iPanel = panel;
                        } else {
@@ -262,6 +274,7 @@
                        mainPanel.displayMessageTable();

                } else if (e.getSource() == nextUnread) {
+
                        if (msg == null) {
                                Logger.warning(this, "No message selected atm ; 
can't get the next unread message");
                                return;
@@ -273,6 +286,33 @@
                                mainPanel.getMessageTreeTable().refresh();
                                
mainPanel.getBoardTree().refresh(newMsg.getBoard());
                        }
+
+               } else if (e.getSource() == actions) {
+
+                       int sel = actions.getSelectedIndex();
+
+                       if (sel == 1) { /* archivate */
+
+                               msg.setArchived(true);
+                               mainPanel.getMessageTreeTable().refresh();
+                               mainPanel.displayMessageTable();
+
+                       } else if (sel == 2) { /* reply */
+
+                               /* TODO */
+
+                       } else if (sel == 3 || sel == 4) { /* (un)fold */
+                               boolean retracted = (sel == 4);
+
+                               for (Iterator it = subPanels.iterator();
+                                    it.hasNext();) {
+
+                                       
((SubMessagePanel)it.next()).setRetracted(retracted);
+                               }
+                       }
+
+                       actions.setSelectedIndex(0);
+
                }
        }
 }

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java   
2007-07-23 15:30:50 UTC (rev 14277)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java   
2007-07-23 15:44:29 UTC (rev 14278)
@@ -111,7 +111,7 @@
                                                                         "FROM 
frostKSKMessages "+
                                                                         "WHERE 
boardId = ? AND "+
                                                                         
"archived = FALSE AND read = FALSE "+
-                                                                        "ORDER 
BY date DESC LIMIT 1");
+                                                                        "ORDER 
BY date LIMIT 1");
                                st.setInt(1, id);

                                ResultSet set = st.executeQuery();


Reply via email to