Author: jflesch
Date: 2007-09-03 22:23:09 +0000 (Mon, 03 Sep 2007)
New Revision: 14944

Added:
   trunk/apps/Thaw/images/miniFrost-view-gmail.png
   trunk/apps/Thaw/images/miniFrost-view-outlook.png
Modified:
   trunk/apps/Thaw/src/thaw/core/ConfigWindow.java
   trunk/apps/Thaw/src/thaw/gui/IconBox.java
   trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties
   trunk/apps/Thaw/src/thaw/i18n/thaw.properties
   trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties
   trunk/apps/Thaw/src/thaw/plugins/MiniFrost.java
   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/MiniFrostConfigTab.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java
Log:
Make it possible to use a more 'classical' view in minifrost

Added: trunk/apps/Thaw/images/miniFrost-view-gmail.png
===================================================================
(Binary files differ)


Property changes on: trunk/apps/Thaw/images/miniFrost-view-gmail.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/apps/Thaw/images/miniFrost-view-outlook.png
===================================================================
(Binary files differ)


Property changes on: trunk/apps/Thaw/images/miniFrost-view-outlook.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/ConfigWindow.java     2007-09-03 20:20:11 UTC 
(rev 14943)
+++ trunk/apps/Thaw/src/thaw/core/ConfigWindow.java     2007-09-03 22:23:09 UTC 
(rev 14944)
@@ -111,12 +111,15 @@
         * Make [dis]appear the config window.
         */
        public void setVisible(final boolean v) {
-               if(v == true) {
+               if (v) {
                        setChanged();
                        this.notifyObservers(null);
                }

                configWin.setVisible(v);
+
+               if (v)
+                       configWin.repaint();
        }

        public boolean addTab(final String name, final java.awt.Component 
panel) {
@@ -231,33 +234,37 @@
                }

                public void run() {
-                       JDialog dialog = new 
JDialog(core.getMainWindow().getMainFrame(),
-                                                    " 
"+I18n.getMessage("thaw.common.pleaseWait"));
+                       JDialog dialog = null;

-                       dialog.getContentPane().setLayout(new GridLayout(1, 1));
-                       dialog.getContentPane().add(new 
JLabel(I18n.getMessage("thaw.common.pleaseWait"),
-                                                              JLabel.CENTER));
+                       if (resetConnection) {
+                               dialog = new 
JDialog(core.getMainWindow().getMainFrame(),
+                                                            " 
"+I18n.getMessage("thaw.common.pleaseWait"));

-                       dialog.setUndecorated(true);
-                       dialog.setResizable(false);
+                               dialog.getContentPane().setLayout(new 
GridLayout(1, 1));
+                               dialog.getContentPane().add(new 
JLabel(I18n.getMessage("thaw.common.pleaseWait"),
+                                                                      
JLabel.CENTER));

-                       dialog.setSize(150, 30);
+                               dialog.setUndecorated(true);
+                               dialog.setResizable(false);

-                       Dimension screenSize =
-                               Toolkit.getDefaultToolkit().getScreenSize();
+                               dialog.setSize(150, 30);

-                       Dimension dialogSize = dialog.getSize();
-                       dialog.setLocation(screenSize.width/2 - 
(dialogSize.width/2),
-                                          screenSize.height/2 - 
(dialogSize.height/2));
+                               Dimension screenSize =
+                                       
Toolkit.getDefaultToolkit().getScreenSize();

-                       dialog.setVisible(true);
+                               Dimension dialogSize = dialog.getSize();
+                               dialog.setLocation(screenSize.width/2 - 
(dialogSize.width/2),
+                                                  screenSize.height/2 - 
(dialogSize.height/2));

-                       dialog.setSize(150, 30);
+                               dialog.setVisible(true);

-                       dialogSize = dialog.getSize();
-                       dialog.setLocation(screenSize.width/2 - 
(dialogSize.width/2),
-                                          screenSize.height/2 - 
(dialogSize.height/2));
+                               dialog.setSize(150, 30);

+                               dialogSize = dialog.getSize();
+                               dialog.setLocation(screenSize.width/2 - 
(dialogSize.width/2),
+                                                  screenSize.height/2 - 
(dialogSize.height/2));
+                       }
+
                        /* Imply a whole reset => all the plugins will be 
reloaded
                         */
                        if (resetConnection) {
@@ -267,10 +274,16 @@

                                /* should reinit the whole connection correctly 
*/
                                if (resetConnection && !core.initConnection()) {
-                                       new thaw.gui.WarningWindow(dialog,
-                                                                  
I18n.getMessage("thaw.warning.unableToConnectTo")+
-                                                                  " 
"+core.getConfig().getValue("nodeAddress")+
-                                                                  ":"+ 
core.getConfig().getValue("nodePort"));
+                                       if (dialog == null)
+                                               new 
thaw.gui.WarningWindow(core.getMainWindow().getMainFrame(),
+                                                                          
I18n.getMessage("thaw.warning.unableToConnectTo")+
+                                                                          " 
"+core.getConfig().getValue("nodeAddress")+
+                                                                          ":"+ 
core.getConfig().getValue("nodePort"));
+                                       else
+                                               new 
thaw.gui.WarningWindow(dialog,
+                                                                          
I18n.getMessage("thaw.warning.unableToConnectTo")+
+                                                                          " 
"+core.getConfig().getValue("nodeAddress")+
+                                                                          ":"+ 
core.getConfig().getValue("nodePort"));
                                }

                                needConnectionReset = false;
@@ -284,7 +297,8 @@
                                core.getConfig().applyChanges();
                        }

-                       dialog.setVisible(false);
+                       if (resetConnection)
+                               dialog.setVisible(false);
                }
        }


Modified: trunk/apps/Thaw/src/thaw/gui/IconBox.java
===================================================================
--- trunk/apps/Thaw/src/thaw/gui/IconBox.java   2007-09-03 20:20:11 UTC (rev 
14943)
+++ trunk/apps/Thaw/src/thaw/gui/IconBox.java   2007-09-03 22:23:09 UTC (rev 
14944)
@@ -173,7 +173,10 @@

        public static ImageIcon web;

+       public static ImageIcon miniFrostGmailView;
+       public static ImageIcon miniFrostOutlookView;

+
        /**
         * Not really used
         */
@@ -316,6 +319,8 @@
                IconBox.mail                = 
IconBox.loadIcon("images/mail.png");
                IconBox.minMail             = 
IconBox.loadIcon("images/min-mail.png");
                IconBox.web                 = 
IconBox.loadIcon("images/web.png");
+               IconBox.miniFrostGmailView  = 
IconBox.loadIcon("images/miniFrost-view-gmail.png");
+               IconBox.miniFrostOutlookView = 
IconBox.loadIcon("images/miniFrost-view-outlook.png");
        }

 }

Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties     2007-09-03 
20:20:11 UTC (rev 14943)
+++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties     2007-09-03 
22:23:09 UTC (rev 14944)
@@ -663,7 +663,11 @@
 thaw.plugin.miniFrost.copyThisKey=Copier cette clef dans le presse-papier
 thaw.plugin.miniFrost.copyAllKeys=Copier toutes les clefs dans le presse-papier

+thaw.plugin.miniFrost.views=Vue:
+thaw.plugin.miniFrost.views.gmail=Vue 1
+thaw.plugin.miniFrost.views.outlook=Vue 2

+
 ## Index web grapher
 thaw.plugin.indexWebGrapher=Une tentative de repr?sentation de la toile des 
indexes
 thaw.plugin.indexWebGrapher.shortName=Toile d'indexes

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2007-09-03 20:20:11 UTC 
(rev 14943)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2007-09-03 22:23:09 UTC 
(rev 14944)
@@ -676,7 +676,11 @@
 thaw.plugin.miniFrost.copyThisKey=Copy this key to the clipboard
 thaw.plugin.miniFrost.copyAllKeys=Copy all the keys to the clipboard

+thaw.plugin.miniFrost.views=View:
+thaw.plugin.miniFrost.views.gmail=View 1
+thaw.plugin.miniFrost.views.outlook=View 2

+
 ## index web grapher

 thaw.plugin.indexWebGrapher=An attempt to draw a graph of the index web

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties    2007-09-03 20:20:11 UTC 
(rev 14943)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties    2007-09-03 22:23:09 UTC 
(rev 14944)
@@ -663,7 +663,11 @@
 thaw.plugin.miniFrost.copyThisKey=Copier cette clef dans le presse-papier
 thaw.plugin.miniFrost.copyAllKeys=Copier toutes les clefs dans le presse-papier

+thaw.plugin.miniFrost.views=Vue:
+thaw.plugin.miniFrost.views.gmail=Vue 1
+thaw.plugin.miniFrost.views.outlook=Vue 2

+
 ## Index web grapher
 thaw.plugin.indexWebGrapher=Une tentative de repr\u00e9sentation de la toile 
des indexes
 thaw.plugin.indexWebGrapher.shortName=Toile d'indexes

Modified: trunk/apps/Thaw/src/thaw/plugins/MiniFrost.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/MiniFrost.java     2007-09-03 20:20:11 UTC 
(rev 14943)
+++ trunk/apps/Thaw/src/thaw/plugins/MiniFrost.java     2007-09-03 22:23:09 UTC 
(rev 14944)
@@ -44,6 +44,7 @@
                core.getConfig().addListener("miniFrostAutoRefreshMaxBoards", 
this);
                core.getConfig().addListener("miniFrostArchiveAfter",         
this);
                core.getConfig().addListener("miniFrostDeleteAfter",          
this);
+               core.getConfig().addListener("miniFrostView",                 
this);

                if (!loadDeps()
                    || !initFactories()

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java        
2007-09-03 20:20:11 UTC (rev 14943)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessagePanel.java        
2007-09-03 22:23:09 UTC (rev 14944)
@@ -110,13 +110,17 @@
                back = new JButton("", IconBox.minLeft);
                
back.setToolTipText(I18n.getMessage("thaw.plugin.miniFrost.goBack"));
                back.addActionListener(this);
-               buttonPanel.add(back);

+               if (mainPanel.isInGmailView())
+                       buttonPanel.add(back);
+
                nextUnread = new JButton("", IconBox.minNextUnread);
                
nextUnread.setToolTipText(I18n.getMessage("thaw.plugin.miniFrost.nextUnread"));
                nextUnread.addActionListener(this);
-               buttonPanel.add(nextUnread);

+               if (mainPanel.isInGmailView())
+                       buttonPanel.add(nextUnread);
+
                reply = new JButton("", IconBox.minMsgReply);
                
reply.setToolTipText(I18n.getMessage("thaw.plugin.miniFrost.reply"));
                reply.addActionListener(this);
@@ -407,6 +411,9 @@
        }

        public void actionPerformed(ActionEvent e) {
+               if (msg == null)
+                       return;
+
                if (e.getSource() == back) {

                        mainPanel.displayMessageTable();

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java    
2007-09-03 20:20:11 UTC (rev 14943)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java    
2007-09-03 22:23:09 UTC (rev 14944)
@@ -128,6 +128,8 @@

        private JComboBox actions;

+       private JScrollPane tableScrollPane;
+
        private String[] keywords;
        private int orderBy;
        private boolean desc;
@@ -211,8 +213,10 @@

                setBoard(null);

+               tableScrollPane = new JScrollPane(table);
+
                panel.add(northPanel, BorderLayout.NORTH);
-               panel.add(new JScrollPane(table), BorderLayout.CENTER);
+               panel.add(tableScrollPane, BorderLayout.CENTER);


                /** some filters **/
@@ -1022,6 +1026,15 @@
                        table.setRowSelectionInterval(line, line);
                        table.setColumnSelectionInterval(0, COLUMNS.length-1);
                        model.refresh(line);
+
+                       int max = 
tableScrollPane.getVerticalScrollBar().getMaximum();
+                       int min = 
tableScrollPane.getVerticalScrollBar().getMinimum();
+                       int value = (((max-min) * (line-5)) / 
model.getRowCount()) + min;
+
+                       if (value < min)
+                               value = min;
+
+                       tableScrollPane.getVerticalScrollBar().setValue(value);
                }
        }

@@ -1044,7 +1057,8 @@

                        if (line >= 0) {
                                Logger.info(this, "Line: 
"+Integer.toString(line));
-
+                               model.setSelectedAll(false);
+                               model.switchSelection(line, true);
                                javax.swing.SwingUtilities.invokeLater(new 
LineSelecter(line));
                        }

@@ -1167,6 +1181,8 @@

                                Message msg = model.getMsg(row);
                                if (msg != null) {
+                                       model.setSelectedAll(false);
+                                       model.switchSelection(row, true);
                                        
mainPanel.getMessagePanel().setMessage(msg);
                                        mainPanel.displayMessage();
                                }

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostConfigTab.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostConfigTab.java  
2007-09-03 20:20:11 UTC (rev 14943)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostConfigTab.java  
2007-09-03 22:23:09 UTC (rev 14944)
@@ -4,6 +4,8 @@
 import javax.swing.JLabel;
 import javax.swing.JComboBox;
 import javax.swing.JButton;
+import javax.swing.JRadioButton;
+import javax.swing.ButtonGroup;

 import java.util.Observer;
 import java.util.Observable;
@@ -29,7 +31,7 @@
        private ConfigWindow configWindow;
        private RegexpBlacklist regexpBlacklist;

-       private JPanel panel;
+       private JPanel globalPanel;

        public final static int MIN_BOARDS = 0;
        public final static int MAX_BOARDS = 30;
@@ -45,7 +47,10 @@

        private JButton regexpButton;

+       private JRadioButton gmailView;
+       private JRadioButton outlookView;

+
        public MiniFrostConfigTab(Config config,
                                  ConfigWindow configWindow,
                                  RegexpBlacklist regexpBlacklist) {
@@ -53,8 +58,10 @@
                this.configWindow = configWindow;
                this.regexpBlacklist = regexpBlacklist;

-               panel = new JPanel(new GridLayout(16, 1));
+               globalPanel = new JPanel(new BorderLayout(10, 10));

+               JPanel panel = new JPanel(new GridLayout(10, 1));
+
                maxBoards = new JComboBox();

                for (int i = MIN_BOARDS ; i <= MAX_BOARDS ; i++)
@@ -68,8 +75,6 @@
                        deleteAfter.addItem( Integer.toString(i)+ " 
"+I18n.getMessage("thaw.plugin.miniFrost.days"));
                }

-               selectValue();
-
                panel.add(new 
JLabel(I18n.getMessage("thaw.plugin.miniFrost.maxBoardsRefreshed")));
                panel.add(maxBoards);

@@ -87,6 +92,48 @@

                panel.add(new JLabel(""));
                panel.add(regexpPanel);
+
+
+               globalPanel.add(panel, BorderLayout.CENTER);
+
+               JPanel southPanel = new JPanel(new BorderLayout());
+
+               southPanel.add(new 
JLabel(I18n.getMessage("thaw.plugin.miniFrost.views")),
+                              BorderLayout.NORTH);
+
+               ButtonGroup buttonGroup = new ButtonGroup();
+
+               JPanel viewPanel = new JPanel(new GridLayout(1, 2));
+
+               JPanel gmailPanel = new JPanel(new BorderLayout(3, 3));
+               JPanel outlookPanel = new JPanel(new BorderLayout(3, 3));
+
+               gmailView   = new 
JRadioButton(I18n.getMessage("thaw.plugin.miniFrost.views.gmail"));
+               outlookView = new 
JRadioButton(I18n.getMessage("thaw.plugin.miniFrost.views.outlook"));
+
+               gmailPanel.add(gmailView, BorderLayout.NORTH);
+               gmailPanel.add(new JLabel(IconBox.miniFrostGmailView,
+                                         JLabel.LEFT),
+                              BorderLayout.CENTER);
+
+               outlookPanel.add(outlookView, BorderLayout.NORTH);
+               outlookPanel.add(new JLabel(IconBox.miniFrostOutlookView,
+                                           JLabel.LEFT),
+                                BorderLayout.CENTER);
+
+
+               buttonGroup.add(gmailView);
+               buttonGroup.add(outlookView);
+
+
+               viewPanel.add(gmailPanel);
+               viewPanel.add(outlookPanel);
+
+               southPanel.add(viewPanel, BorderLayout.CENTER);
+
+               globalPanel.add(southPanel, BorderLayout.SOUTH);
+
+               selectValues();
        }


@@ -94,16 +141,16 @@
                configWindow.addObserver(this);
                configWindow.addTab(I18n.getMessage("thaw.plugin.miniFrost"),
                                    thaw.gui.IconBox.minReadComments,
-                                   panel);
+                                   globalPanel);
        }


        public void hide() {
                configWindow.deleteObserver(this);
-               configWindow.removeTab(panel);
+               configWindow.removeTab(globalPanel);
        }

-       private void selectValue() {
+       private void selectValues() {

                int max;

@@ -135,6 +182,22 @@
                }

                deleteAfter.setSelectedIndex(max-MIN_DAYS);
+
+
+               int view = MiniFrostPanel.DEFAULT_VIEW;
+
+               if (config.getValue("miniFrostView") != null) {
+                       view = 
Integer.parseInt(config.getValue("miniFrostView"));
+                       Logger.info(this, "View : "+Integer.toString(view));
+               }
+
+               if (view == 0) {
+                       outlookView.setSelected(false);
+                       gmailView.setSelected(true);
+               } else {
+                       gmailView.setSelected(false);
+                       outlookView.setSelected(true);
+               }
        }


@@ -156,9 +219,12 @@
                        config.setValue("miniFrostDeleteAfter",
                                        extractNumber(deleteAfter));

+                       config.setValue("miniFrostView",
+                                       (gmailView.isSelected() ? "0" : "1"));
+
                } else if (param == configWindow.getCancelButton()) {

-                       selectValue();
+                       selectValues();

                }
        }

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java      
2007-09-03 20:20:11 UTC (rev 14943)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MiniFrostPanel.java      
2007-09-03 22:23:09 UTC (rev 14944)
@@ -2,6 +2,7 @@

 import javax.swing.JSplitPane;
 import javax.swing.JLabel;
+import javax.swing.JComponent;

 import java.util.Observer;
 import java.util.Observable;
@@ -28,6 +29,8 @@
  * </ul>
  */
 public class MiniFrostPanel implements Observer {
+       public final static int DEFAULT_VIEW = 0; /* 0 = Gmail ; 1 = Outlook */
+
        private Config config;
        private Hsqldb db;
        private BoardTree boardTree;
@@ -38,7 +41,9 @@

        private MiniFrost pluginCore;

-       private JSplitPane mainSplit;
+       private boolean gmailView = true;
+       private JSplitPane mainSplit = null;
+       private JSplitPane rightSplit = null;


        public MiniFrostPanel(Config config, Hsqldb db, MiniFrost pluginCore) {
@@ -46,6 +51,12 @@
                this.db = db;
                this.pluginCore = pluginCore;

+               gmailView = true;
+
+               if (config.getValue("miniFrostView") == null
+                   || "1".equals(config.getValue("miniFrostView")))
+                       gmailView = false;
+
                /* board tree use some settings provided by the message tree 
table
                 * to count the unread messages => it must instanciated after */
                messageTreeTable = new MessageTreeTable(this);
@@ -56,10 +67,22 @@
                boardTree.addObserver(messageTreeTable);
                boardTree.addObserver(this);

-               /* so it will be vertical ... don't ask me why ... */
+
+               JComponent mainComponent;
+
+               if (gmailView) {
+                       mainComponent = messageTreeTable.getPanel();
+                       rightSplit = null;
+               } else {
+                       rightSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
+                                                   messageTreeTable.getPanel(),
+                                                   messagePanel.getPanel());
+                       mainComponent = rightSplit;
+               }
+
                mainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
                                           boardTree.getPanel(),
-                                          messageTreeTable.getPanel());
+                                          mainComponent);
        }


@@ -69,7 +92,11 @@
                messagePanel.hided();
                messageTreeTable.hided();

-               mainSplit.setRightComponent(draftPanel.getPanel());
+               if (gmailView)
+                       mainSplit.setRightComponent(draftPanel.getPanel());
+               else
+                       rightSplit.setRightComponent(draftPanel.getPanel());
+
                mainSplit.validate();

                draftPanel.redisplayed();
@@ -84,7 +111,11 @@
                messagePanel.hided();
                draftPanel.hided();

-               mainSplit.setRightComponent(messageTreeTable.getPanel());
+               if (gmailView)
+                       
mainSplit.setRightComponent(messageTreeTable.getPanel());
+               else
+                       
rightSplit.setLeftComponent(messageTreeTable.getPanel());
+
                mainSplit.validate();

                messageTreeTable.redisplayed();
@@ -98,7 +129,11 @@
                messageTreeTable.hided();
                draftPanel.hided();

-               mainSplit.setRightComponent(messagePanel.getPanel());
+               if (gmailView)
+                       mainSplit.setRightComponent(messagePanel.getPanel());
+               else
+                       rightSplit.setRightComponent(messagePanel.getPanel());
+
                messagePanel.redisplayed();
                mainSplit.validate();

@@ -177,6 +212,13 @@
                else
                        mainSplit.setDividerLocation(150);

+               rightSplit.setResizeWeight(0.5);
+
+               if ((val = config.getValue("miniFrostRightSplitPosition")) != 
null)
+                       rightSplit.setDividerLocation(Integer.parseInt(val));
+               else
+                       rightSplit.setDividerLocation(150);
+
                boardTree.loadState();
        }

@@ -184,6 +226,8 @@
        public void saveState() {
                config.setValue("miniFrostMainSplitPosition",
                                
Integer.toString(mainSplit.getDividerLocation()));
+               config.setValue("miniFrostRightSplitPosition",
+                               
Integer.toString(rightSplit.getDividerLocation()));
                boardTree.saveState();
        }

@@ -219,4 +263,8 @@

                boardTree.updateDraftValues(waitings, postings);
        }
+
+       public boolean isInGmailView() {
+               return gmailView;
+       }
 }


Reply via email to