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;
+ }
}