diff --git a/src/net/java/sip/communicator/impl/gui/i18n/messages.properties b/src/net/java/sip/communicator/impl/gui/i18n/messages.properties index 7a40a60dc..92915eec0 100644 --- a/src/net/java/sip/communicator/impl/gui/i18n/messages.properties +++ b/src/net/java/sip/communicator/impl/gui/i18n/messages.properties @@ -95,6 +95,7 @@ print=Print protocol=Protocol quit=Quit reconnectionLimitExceeded=You have have been disconnecting and reconnecting to the server too fast. ? account is temporarily banned and would have to wait a bit before trying to login again. +refresh=Refresh reject=Reject rememberPassword=Remember password remove=Remove diff --git a/src/net/java/sip/communicator/impl/gui/main/message/history/HistoryWindow.java b/src/net/java/sip/communicator/impl/gui/main/message/history/HistoryWindow.java index 60b3dc2e5..ee1bc90ab 100644 --- a/src/net/java/sip/communicator/impl/gui/main/message/history/HistoryWindow.java +++ b/src/net/java/sip/communicator/impl/gui/main/message/history/HistoryWindow.java @@ -8,19 +8,20 @@ package net.java.sip.communicator.impl.gui.main.message.history; import java.awt.BorderLayout; +import java.awt.FlowLayout; import java.awt.Toolkit; import java.awt.Window; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.Collection; import java.util.Date; import java.util.Iterator; -import java.util.Vector; import javax.swing.BorderFactory; +import javax.swing.JButton; import javax.swing.JFrame; -import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; -import javax.swing.JScrollPane; import net.java.sip.communicator.impl.gui.GuiActivator; import net.java.sip.communicator.impl.gui.i18n.Messages; @@ -30,11 +31,7 @@ import net.java.sip.communicator.impl.gui.utils.Constants; import net.java.sip.communicator.impl.gui.utils.ImageLoader; import net.java.sip.communicator.service.contactlist.MetaContact; -import net.java.sip.communicator.service.history.QueryResultSet; -import net.java.sip.communicator.service.history.records.HistoryRecord; import net.java.sip.communicator.service.msghistory.MessageHistoryService; -import net.java.sip.communicator.service.protocol.Contact; -import net.java.sip.communicator.service.protocol.Message; import net.java.sip.communicator.service.protocol.ProtocolProviderService; import net.java.sip.communicator.service.protocol.event.MessageDeliveredEvent; import net.java.sip.communicator.service.protocol.event.MessageReceivedEvent; @@ -47,14 +44,16 @@ * @author Yana Stamcheva */ public class HistoryWindow extends JFrame - implements ChatConversationContainer { + implements ChatConversationContainer, ActionListener { private JPanel historyPane = new JPanel(new BorderLayout()); private JPanel mainPanel = new JPanel(new BorderLayout(10, 10)); - private NavigationPanel navigationPanel = new NavigationPanel(); - + private JPanel refreshPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); + + private JButton refreshButton = new JButton(Messages.getString("refresh")); + private SearchPanel searchPanel; private JMenuBar historyMenuBar = new JMenuBar(); @@ -65,16 +64,22 @@ public class HistoryWindow extends JFrame private DatesPanel datesPanel; - private Vector contacts; - private MetaContact metaContact; - private String title = Messages.getString("history") + " - "; - private MessageHistoryService msgHistory = GuiActivator.getMsgHistoryService(); private MainFrame mainFrame; + private static String KEYWORD_SEARCH = "KeywordSearch"; + + private static String PERIOD_SEARCH = "PeriodSearch"; + + private String lastExecutedSearch; + + private Date searchStartDate; + + private String searchKeyword; + /** * Creates an instance of the HistoryWindow. * @param mainFrame the main application window @@ -149,6 +154,10 @@ else if (o instanceof MessageReceivedEvent) { */ private void initPanels() { + this.refreshButton.addActionListener(this); + + this.refreshPanel.add(refreshButton); + this.historyMenuBar.add(historyMenu); this.northPanel.add(historyMenuBar, BorderLayout.NORTH); @@ -161,7 +170,7 @@ private void initPanels() { this.mainPanel.add(historyPane, BorderLayout.CENTER); - //this.mainPanel.add(navigationPanel, BorderLayout.SOUTH); + this.mainPanel.add(refreshPanel, BorderLayout.SOUTH); this.mainPanel.add(datesPanel, BorderLayout.WEST); @@ -179,6 +188,10 @@ public void showHistoryByPeriod(Date startDate, Date endDate) { this.metaContact, startDate, endDate); showHistory(msgList); + + this.lastExecutedSearch = PERIOD_SEARCH; + + this.searchStartDate = startDate; } /** @@ -191,6 +204,9 @@ public void showHistoryByKeyword(String keyword) { this.metaContact, keyword); showHistory(msgList); + + this.lastExecutedSearch = KEYWORD_SEARCH; + this.searchKeyword = keyword; } /** @@ -250,4 +266,19 @@ public void setStatusMessage(String message) { public Window getWindow() { return this; } + + /** + * Handles the ActionEvent triggered when user clicks on the + * refresh button. Executes ones more the last search. + */ + public void actionPerformed(ActionEvent e) { + + if(lastExecutedSearch.equals(KEYWORD_SEARCH)) { + showHistoryByKeyword(searchKeyword); + } + else if(lastExecutedSearch.equals(PERIOD_SEARCH)) { + showHistoryByPeriod(searchStartDate, + new Date(System.currentTimeMillis())); + } + } }