use of javax.swing.JScrollPane in project gitblit by gitblit.
the class SearchDialog method initialize.
private void initialize() {
prev = new JButton("<");
prev.setToolTipText(Translation.get("gb.pagePrevious"));
prev.setEnabled(false);
prev.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
search(--page);
}
});
next = new JButton(">");
next.setToolTipText(Translation.get("gb.pageNext"));
next.setEnabled(false);
next.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
search(++page);
}
});
final JButton search = new JButton(Translation.get(isSearch ? "gb.search" : "gb.refresh"));
search.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
search(0);
}
});
final JButton viewCommit = new JButton(Translation.get("gb.view"));
viewCommit.setEnabled(false);
viewCommit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewCommit();
}
});
final JButton viewCommitDiff = new JButton(Translation.get("gb.commitdiff"));
viewCommitDiff.setEnabled(false);
viewCommitDiff.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewCommitDiff();
}
});
final JButton viewTree = new JButton(Translation.get("gb.tree"));
viewTree.setEnabled(false);
viewTree.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewTree();
}
});
JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0));
controls.add(viewCommit);
controls.add(viewCommitDiff);
controls.add(viewTree);
NameRenderer nameRenderer = new NameRenderer();
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(FeedEntryTableModel.Columns.Author.ordinal());
table.getColumn(name).setCellRenderer(nameRenderer);
name = table.getColumnName(FeedEntryTableModel.Columns.Repository.ordinal());
table.getColumn(name).setCellRenderer(nameRenderer);
name = table.getColumnName(FeedEntryTableModel.Columns.Branch.ordinal());
table.getColumn(name).setCellRenderer(new BranchRenderer());
name = table.getColumnName(FeedEntryTableModel.Columns.Message.ordinal());
table.getColumn(name).setCellRenderer(new MessageRenderer());
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (e.isControlDown()) {
viewCommitDiff();
} else {
viewCommit();
}
}
}
});
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
boolean singleSelection = table.getSelectedRowCount() == 1;
viewCommit.setEnabled(singleSelection);
viewCommitDiff.setEnabled(singleSelection);
viewTree.setEnabled(singleSelection);
}
});
repositorySelector = new JComboBox(gitblit.getRepositories().toArray());
repositorySelector.setRenderer(nameRenderer);
repositorySelector.setForeground(nameRenderer.getForeground());
repositorySelector.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
// repopulate the branch list based on repository selection
// preserve branch selection, if possible
String selectedBranch = null;
if (branchSelector.getSelectedIndex() > -1) {
selectedBranch = branchSelector.getSelectedItem().toString();
}
updateBranches();
if (StringUtils.isEmpty(selectedBranch)) {
// do not select branch
branchSelector.setSelectedIndex(-1);
} else {
if (branchChoices.getIndexOf(selectedBranch) > -1) {
// select branch
branchChoices.setSelectedItem(selectedBranch);
} else {
// branch does not exist, do not select branch
branchSelector.setSelectedIndex(-1);
}
}
}
});
branchChoices = new DefaultComboBoxModel();
branchSelector = new JComboBox(branchChoices);
branchSelector.setRenderer(new BranchRenderer());
searchTypeSelector = new JComboBox(Constants.SearchType.values());
searchTypeSelector.setSelectedItem(Constants.SearchType.COMMIT);
maxHitsSelector = new JComboBox(new Integer[] { 25, 50, 75, 100 });
maxHitsSelector.setSelectedIndex(0);
searchFragment = new JTextField(25);
searchFragment.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
search(0);
}
});
JPanel queryPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0));
queryPanel.add(new JLabel(Translation.get("gb.repository")));
queryPanel.add(repositorySelector);
queryPanel.add(new JLabel(Translation.get("gb.branch")));
queryPanel.add(branchSelector);
if (isSearch) {
queryPanel.add(new JLabel(Translation.get("gb.type")));
queryPanel.add(searchTypeSelector);
}
queryPanel.add(new JLabel(Translation.get("gb.maxHits")));
queryPanel.add(maxHitsSelector);
JPanel actionsPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0));
actionsPanel.add(search);
actionsPanel.add(prev);
actionsPanel.add(next);
JPanel northControls = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
northControls.add(queryPanel, BorderLayout.WEST);
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);
northPanel.add(northControls, BorderLayout.CENTER);
JPanel contentPanel = new JPanel() {
private static final long serialVersionUID = 1L;
@Override
public Insets getInsets() {
return Utils.INSETS;
}
};
contentPanel.setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
contentPanel.add(northPanel, BorderLayout.NORTH);
contentPanel.add(new JScrollPane(table), BorderLayout.CENTER);
contentPanel.add(controls, BorderLayout.SOUTH);
setLayout(new BorderLayout());
add(contentPanel, BorderLayout.CENTER);
addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent event) {
if (isSearch) {
searchFragment.requestFocus();
} else {
search(0);
}
}
@Override
public void windowActivated(WindowEvent event) {
if (isSearch) {
searchFragment.requestFocus();
}
}
});
}
use of javax.swing.JScrollPane in project gitblit by gitblit.
the class UsersPanel method initialize.
private void initialize() {
JButton refreshUsers = new JButton(Translation.get("gb.refresh"));
refreshUsers.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
refreshUsers();
}
});
JButton createUser = new JButton(Translation.get("gb.create"));
createUser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
createUser();
}
});
final JButton editUser = new JButton(Translation.get("gb.edit"));
editUser.setEnabled(false);
editUser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
editUser(getSelectedUsers().get(0));
}
});
final JButton delUser = new JButton(Translation.get("gb.delete"));
delUser.setEnabled(false);
delUser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
deleteUsers(getSelectedUsers());
}
});
NameRenderer nameRenderer = new NameRenderer();
tableModel = new UsersTableModel();
defaultSorter = new TableRowSorter<UsersTableModel>(tableModel);
table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
String name = table.getColumnName(UsersTableModel.Columns.Name.ordinal());
table.getColumn(name).setCellRenderer(nameRenderer);
int w = 130;
name = table.getColumnName(UsersTableModel.Columns.Type.ordinal());
table.getColumn(name).setMinWidth(w);
table.getColumn(name).setMaxWidth(w);
name = table.getColumnName(UsersTableModel.Columns.Teams.ordinal());
table.getColumn(name).setMinWidth(w);
table.getColumn(name).setMaxWidth(w);
name = table.getColumnName(UsersTableModel.Columns.Repositories.ordinal());
table.getColumn(name).setMinWidth(w);
table.getColumn(name).setMaxWidth(w);
table.setRowSorter(defaultSorter);
table.getRowSorter().toggleSortOrder(UsersTableModel.Columns.Name.ordinal());
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
boolean selected = table.getSelectedRow() > -1;
boolean singleSelection = table.getSelectedRows().length == 1;
editUser.setEnabled(singleSelection && selected);
delUser.setEnabled(selected);
}
});
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
editUser(getSelectedUsers().get(0));
}
}
});
filterTextfield = new JTextField();
filterTextfield.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
filterUsers(filterTextfield.getText());
}
});
filterTextfield.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
filterUsers(filterTextfield.getText());
}
});
JPanel userFilterPanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
userFilterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
userFilterPanel.add(filterTextfield, BorderLayout.CENTER);
JPanel userTablePanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
userTablePanel.add(userFilterPanel, BorderLayout.NORTH);
userTablePanel.add(new JScrollPane(table), BorderLayout.CENTER);
JPanel userControls = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
userControls.add(refreshUsers);
userControls.add(createUser);
userControls.add(editUser);
userControls.add(delUser);
setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
header = new HeaderPanel(Translation.get("gb.users"), "user_16x16.png");
add(header, BorderLayout.NORTH);
add(userTablePanel, BorderLayout.CENTER);
add(userControls, BorderLayout.SOUTH);
}
use of javax.swing.JScrollPane in project gitblit by gitblit.
the class Utils method showException.
public static void showException(Component c, Throwable t) {
StringWriter writer = new StringWriter();
t.printStackTrace(new PrintWriter(writer));
String stacktrace = writer.toString();
try {
writer.close();
} catch (Throwable x) {
}
JTextArea textArea = new JTextArea(stacktrace);
textArea.setFont(new Font("monospaced", Font.PLAIN, 11));
JScrollPane jsp = new JScrollPane(textArea);
jsp.setPreferredSize(new Dimension(800, 400));
JOptionPane.showMessageDialog(c, jsp, Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
}
use of javax.swing.JScrollPane in project gitblit by gitblit.
the class FeedsPanel method initialize.
private void initialize() {
prev = new JButton("<");
prev.setToolTipText(Translation.get("gb.pagePrevious"));
prev.setEnabled(false);
prev.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
refreshFeeds(--page);
}
});
next = new JButton(">");
next.setToolTipText(Translation.get("gb.pageNext"));
next.setEnabled(false);
next.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
refreshFeeds(++page);
}
});
JButton refreshFeeds = new JButton(Translation.get("gb.refresh"));
refreshFeeds.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
refreshFeeds(0);
}
});
final JButton viewCommit = new JButton(Translation.get("gb.view"));
viewCommit.setEnabled(false);
viewCommit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewCommit();
}
});
final JButton viewCommitDiff = new JButton(Translation.get("gb.commitdiff"));
viewCommitDiff.setEnabled(false);
viewCommitDiff.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewCommitDiff();
}
});
final JButton viewTree = new JButton(Translation.get("gb.tree"));
viewTree.setEnabled(false);
viewTree.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewTree();
}
});
JButton subscribeFeeds = new JButton(Translation.get("gb.subscribe") + "...");
subscribeFeeds.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
subscribeFeeds(gitblit.getAvailableFeeds());
}
});
JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0));
controls.add(refreshFeeds);
controls.add(subscribeFeeds);
controls.add(viewCommit);
controls.add(viewCommitDiff);
controls.add(viewTree);
NameRenderer nameRenderer = new NameRenderer();
tableModel = new FeedEntryTableModel();
header = new HeaderPanel(Translation.get("gb.activity"), "feed_16x16.png");
table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
defaultSorter = new TableRowSorter<FeedEntryTableModel>(tableModel);
String name = table.getColumnName(FeedEntryTableModel.Columns.Author.ordinal());
table.getColumn(name).setCellRenderer(nameRenderer);
name = table.getColumnName(FeedEntryTableModel.Columns.Repository.ordinal());
table.getColumn(name).setCellRenderer(nameRenderer);
name = table.getColumnName(FeedEntryTableModel.Columns.Branch.ordinal());
table.getColumn(name).setCellRenderer(new BranchRenderer());
name = table.getColumnName(FeedEntryTableModel.Columns.Message.ordinal());
table.getColumn(name).setCellRenderer(new MessageRenderer(gitblit));
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (e.isControlDown()) {
viewCommitDiff();
} else {
viewCommit();
}
}
}
});
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
boolean singleSelection = table.getSelectedRowCount() == 1;
viewCommit.setEnabled(singleSelection);
viewCommitDiff.setEnabled(singleSelection);
viewTree.setEnabled(singleSelection);
}
});
repositoryChoices = new DefaultComboBoxModel();
repositorySelector = new JComboBox(repositoryChoices);
repositorySelector.setRenderer(nameRenderer);
repositorySelector.setForeground(nameRenderer.getForeground());
repositorySelector.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
// repopulate the author list based on repository selection
// preserve author selection, if possible
String selectedAuthor = null;
if (authorSelector.getSelectedIndex() > -1) {
selectedAuthor = authorSelector.getSelectedItem().toString();
}
updateAuthors();
if (selectedAuthor != null) {
if (authorChoices.getIndexOf(selectedAuthor) > -1) {
authorChoices.setSelectedItem(selectedAuthor);
}
}
filterFeeds();
}
});
authorChoices = new DefaultComboBoxModel();
authorSelector = new JComboBox(authorChoices);
authorSelector.setRenderer(nameRenderer);
authorSelector.setForeground(nameRenderer.getForeground());
authorSelector.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
filterFeeds();
}
});
JPanel northControls = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0));
northControls.add(new JLabel(Translation.get("gb.repository")));
northControls.add(repositorySelector);
northControls.add(new JLabel(Translation.get("gb.author")));
northControls.add(authorSelector);
// northControls.add(prev);
// northControls.add(next);
JPanel northPanel = new JPanel(new BorderLayout(0, Utils.MARGIN));
northPanel.add(header, BorderLayout.NORTH);
northPanel.add(northControls, BorderLayout.CENTER);
setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
add(northPanel, BorderLayout.NORTH);
add(new JScrollPane(table), BorderLayout.CENTER);
add(controls, BorderLayout.SOUTH);
}
use of javax.swing.JScrollPane in project gitblit by gitblit.
the class Utils method showException.
public static void showException(Component c, Throwable t) {
StringWriter writer = new StringWriter();
t.printStackTrace(new PrintWriter(writer));
String stacktrace = writer.toString();
try {
writer.close();
} catch (Throwable x) {
}
JTextArea textArea = new JTextArea(stacktrace);
textArea.setFont(new Font("monospaced", Font.PLAIN, 11));
JScrollPane jsp = new JScrollPane(textArea);
jsp.setPreferredSize(new Dimension(800, 400));
JOptionPane.showMessageDialog(c, jsp, Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
}
Aggregations