From ee458f82b8502e238a96e6582e910cb366059ead Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 07 Nov 2011 22:12:38 -0500 Subject: [PATCH] Log feature based on Search dialog. Renamed some classes. --- src/com/gitblit/client/SearchDialog.java | 106 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 62 insertions(+), 44 deletions(-) diff --git a/src/com/gitblit/client/SearchDialog.java b/src/com/gitblit/client/SearchDialog.java index 448aaef..8c94a5b 100644 --- a/src/com/gitblit/client/SearchDialog.java +++ b/src/com/gitblit/client/SearchDialog.java @@ -44,7 +44,7 @@ import com.gitblit.Constants; import com.gitblit.models.RepositoryModel; -import com.gitblit.models.SyndicatedEntryModel; +import com.gitblit.models.FeedEntryModel; import com.gitblit.utils.StringUtils; /** @@ -58,9 +58,11 @@ private static final long serialVersionUID = 1L; + private final boolean isSearch; + private final GitblitClient gitblit; - private SyndicatedEntryTableModel tableModel; + private FeedEntryTableModel tableModel; private HeaderPanel header; @@ -84,13 +86,15 @@ private JButton next; - public SearchDialog(GitblitClient gitblit) { + public SearchDialog(GitblitClient gitblit, boolean isSearch) { super(); this.gitblit = gitblit; - setTitle(Translation.get("gb.search")); - setIconImage(new ImageIcon(getClass().getResource("/gitblt-favicon.png")).getImage()); + this.isSearch = isSearch; + setTitle(Translation.get(isSearch ? "gb.search" : "gb.log")); + setIconImage(new ImageIcon(getClass().getResource( + isSearch ? "/gitblt-favicon.png" : "/commit_changes_16x16.png")).getImage()); initialize(); - setSize(900, 400); + setSize(900, 550); } private void initialize() { @@ -113,7 +117,7 @@ } }); - final JButton search = new JButton(Translation.get("gb.search")); + final JButton search = new JButton(Translation.get(isSearch ? "gb.search" : "gb.refresh")); search.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { search(0); @@ -150,20 +154,21 @@ controls.add(viewTree); NameRenderer nameRenderer = new NameRenderer(); - tableModel = new SyndicatedEntryTableModel(); - header = new HeaderPanel(Translation.get("gb.search"), "search-icon.png"); + tableModel = new FeedEntryTableModel(); + header = new HeaderPanel(Translation.get(isSearch ? "gb.search" : "gb.log"), + isSearch ? "search-icon.png" : "commit_changes_16x16.png"); table = Utils.newTable(tableModel, Utils.DATE_FORMAT); - String name = table.getColumnName(SyndicatedEntryTableModel.Columns.Author.ordinal()); + String name = table.getColumnName(FeedEntryTableModel.Columns.Author.ordinal()); table.setRowHeight(nameRenderer.getFont().getSize() + 8); table.getColumn(name).setCellRenderer(nameRenderer); - name = table.getColumnName(SyndicatedEntryTableModel.Columns.Repository.ordinal()); + name = table.getColumnName(FeedEntryTableModel.Columns.Repository.ordinal()); table.getColumn(name).setCellRenderer(nameRenderer); - name = table.getColumnName(SyndicatedEntryTableModel.Columns.Branch.ordinal()); + name = table.getColumnName(FeedEntryTableModel.Columns.Branch.ordinal()); table.getColumn(name).setCellRenderer(new BranchRenderer()); - name = table.getColumnName(SyndicatedEntryTableModel.Columns.Message.ordinal()); + name = table.getColumnName(FeedEntryTableModel.Columns.Message.ordinal()); table.getColumn(name).setCellRenderer(new MessageRenderer()); table.addMouseListener(new MouseAdapter() { @@ -220,7 +225,7 @@ branchChoices = new DefaultComboBoxModel(); branchSelector = new JComboBox(branchChoices); - branchSelector.setRenderer(new BranchRenderer()); + branchSelector.setRenderer(new BranchRenderer()); searchTypeSelector = new JComboBox(Constants.SearchType.values()); searchTypeSelector.setSelectedItem(Constants.SearchType.COMMIT); @@ -240,8 +245,10 @@ queryPanel.add(repositorySelector); queryPanel.add(new JLabel(Translation.get("gb.branch"))); queryPanel.add(branchSelector); - queryPanel.add(new JLabel(Translation.get("gb.type"))); - queryPanel.add(searchTypeSelector); + if (isSearch) { + queryPanel.add(new JLabel(Translation.get("gb.type"))); + queryPanel.add(searchTypeSelector); + } queryPanel.add(new JLabel(Translation.get("gb.maxHits"))); queryPanel.add(maxHitsSelector); @@ -252,9 +259,10 @@ JPanel northControls = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN)); northControls.add(queryPanel, BorderLayout.WEST); - northControls.add(searchFragment, BorderLayout.CENTER); + if (isSearch) { + northControls.add(searchFragment, BorderLayout.CENTER); + } northControls.add(actionsPanel, BorderLayout.EAST); - JPanel northPanel = new JPanel(new BorderLayout(0, Utils.MARGIN)); northPanel.add(header, BorderLayout.NORTH); @@ -275,17 +283,19 @@ contentPanel.add(controls, BorderLayout.SOUTH); setLayout(new BorderLayout()); add(contentPanel, BorderLayout.CENTER); - addWindowListener(new WindowAdapter() { - @Override - public void windowOpened(WindowEvent event) { - searchFragment.requestFocus(); - } + if (isSearch) { + addWindowListener(new WindowAdapter() { + @Override + public void windowOpened(WindowEvent event) { + searchFragment.requestFocus(); + } - @Override - public void windowActivated(WindowEvent event) { - searchFragment.requestFocus(); - } - }); + @Override + public void windowActivated(WindowEvent event) { + searchFragment.requestFocus(); + } + }); + } } public void selectRepository(RepositoryModel repository) { @@ -311,25 +321,33 @@ .getSelectedItem().toString() : null; final Constants.SearchType searchType = (Constants.SearchType) searchTypeSelector .getSelectedItem(); - final String fragment = searchFragment.getText(); + final String fragment = isSearch ? searchFragment.getText() : null; final int maxEntryCount = maxHitsSelector.getSelectedIndex() > -1 ? ((Integer) maxHitsSelector .getSelectedItem()) : -1; - if (StringUtils.isEmpty(fragment)) { + if (isSearch && StringUtils.isEmpty(fragment)) { return; } - SwingWorker<List<SyndicatedEntryModel>, Void> worker = new SwingWorker<List<SyndicatedEntryModel>, Void>() { + SwingWorker<List<FeedEntryModel>, Void> worker = new SwingWorker<List<FeedEntryModel>, Void>() { @Override - protected List<SyndicatedEntryModel> doInBackground() throws IOException { - return gitblit - .search(repository, branch, fragment, searchType, maxEntryCount, page); + protected List<FeedEntryModel> doInBackground() throws IOException { + if (isSearch) { + return gitblit.search(repository, branch, fragment, searchType, maxEntryCount, + page); + } else { + return gitblit.log(repository, branch, maxEntryCount, page); + } } @Override protected void done() { try { - List<SyndicatedEntryModel> results = get(); - updateTable(true, fragment, results); + List<FeedEntryModel> results = get(); + if (isSearch) { + updateTable(true, fragment, results); + } else { + updateTable(true, branch == null ? "" : branch, results); + } } catch (Throwable t) { Utils.showException(SearchDialog.this, t); } @@ -338,12 +356,12 @@ worker.execute(); } - protected void updateTable(boolean pack, String fragment, List<SyndicatedEntryModel> entries) { + protected void updateTable(boolean pack, String text, List<FeedEntryModel> entries) { tableModel.entries.clear(); tableModel.entries.addAll(entries); tableModel.fireTableDataChanged(); - setTitle(Translation.get("gb.search") + ": " + fragment + " (" + entries.size() - + (page > 0 ? (", pg " + (page + 1)) : "") + ")"); + setTitle(Translation.get(isSearch ? "gb.search" : "gb.log") + ": " + text + " (" + + entries.size() + (page > 0 ? (", pg " + (page + 1)) : "") + ")"); header.setText(getTitle()); if (pack) { Utils.packColumns(table, Utils.MARGIN); @@ -356,25 +374,25 @@ prev.setEnabled(page > 0); } - protected SyndicatedEntryModel getSelectedSyndicatedEntry() { + protected FeedEntryModel getSelectedSyndicatedEntry() { int viewRow = table.getSelectedRow(); int modelRow = table.convertRowIndexToModel(viewRow); - SyndicatedEntryModel entry = tableModel.get(modelRow); + FeedEntryModel entry = tableModel.get(modelRow); return entry; } protected void viewCommit() { - SyndicatedEntryModel entry = getSelectedSyndicatedEntry(); + FeedEntryModel entry = getSelectedSyndicatedEntry(); Utils.browse(entry.link); } protected void viewCommitDiff() { - SyndicatedEntryModel entry = getSelectedSyndicatedEntry(); + FeedEntryModel entry = getSelectedSyndicatedEntry(); Utils.browse(entry.link.replace("/commit/", "/commitdiff/")); } protected void viewTree() { - SyndicatedEntryModel entry = getSelectedSyndicatedEntry(); + FeedEntryModel entry = getSelectedSyndicatedEntry(); Utils.browse(entry.link.replace("/commit/", "/tree/")); } } -- Gitblit v1.9.1