| | |
| | |
|
| | | private JButton editRepository;
|
| | |
|
| | | private HeaderPanel repositoriesHeader;
|
| | |
|
| | | private HeaderPanel usersHeader;
|
| | |
|
| | | private HeaderPanel settingsHeader;
|
| | |
|
| | | public GitblitPanel(GitblitRegistration reg) {
|
| | | this(reg.url, reg.account, reg.password);
|
| | | }
|
| | |
| | | repositoriesTable = Utils.newTable(repositoriesModel);
|
| | | repositoriesTable.setRowHeight(nameRenderer.getFont().getSize() + 8);
|
| | | repositoriesTable.setRowSorter(defaultRepositoriesSorter);
|
| | | repositoriesTable.getRowSorter().toggleSortOrder(RepositoriesTableModel.Columns.Name.ordinal());
|
| | | repositoriesTable.getRowSorter().toggleSortOrder(
|
| | | RepositoriesTableModel.Columns.Name.ordinal());
|
| | |
|
| | | setRepositoryRenderer(RepositoriesTableModel.Columns.Name, nameRenderer, -1);
|
| | | setRepositoryRenderer(RepositoriesTableModel.Columns.Indicators, typeRenderer, 100);
|
| | |
| | | RepositoryModel model = ((RepositoriesTableModel) repositoriesTable.getModel()).list
|
| | | .get(modelRow);
|
| | | editRepository.setEnabled(singleSelection
|
| | | && (gitblit.allowAdmin() || gitblit.isOwner(model)));
|
| | | && (gitblit.allowManagement() || gitblit.isOwner(model)));
|
| | | } else {
|
| | | editRepository.setEnabled(false);
|
| | | }
|
| | |
| | |
|
| | | repositoriesTable.addMouseListener(new MouseAdapter() {
|
| | | public void mouseClicked(MouseEvent e) {
|
| | | if (e.getClickCount() == 2 && gitblit.allowAdmin()) {
|
| | | if (e.getClickCount() == 2 && gitblit.allowManagement()) {
|
| | | editRepository(getSelectedRepositories().get(0));
|
| | | }
|
| | | }
|
| | |
| | | return insets;
|
| | | }
|
| | | };
|
| | | repositoriesPanel.add(new HeaderPanel(Translation.get("gb.repositories"),
|
| | | "gitweb-favicon.png"), BorderLayout.NORTH);
|
| | | repositoriesHeader = new HeaderPanel(Translation.get("gb.repositories"),
|
| | | "gitweb-favicon.png");
|
| | | repositoriesPanel.add(repositoriesHeader, BorderLayout.NORTH);
|
| | | repositoriesPanel.add(repositoryTablePanel, BorderLayout.CENTER);
|
| | | repositoriesPanel.add(repositoryControls, BorderLayout.SOUTH);
|
| | |
|
| | | return repositoriesPanel;
|
| | | }
|
| | |
|
| | | private void setRepositoryRenderer(RepositoriesTableModel.Columns col, TableCellRenderer renderer,
|
| | | int maxWidth) {
|
| | | private void setRepositoryRenderer(RepositoriesTableModel.Columns col,
|
| | | TableCellRenderer renderer, int maxWidth) {
|
| | | String name = repositoriesTable.getColumnName(col.ordinal());
|
| | | repositoriesTable.getColumn(name).setCellRenderer(renderer);
|
| | | if (maxWidth > 0) {
|
| | |
| | | return insets;
|
| | | }
|
| | | };
|
| | | usersPanel.add(new HeaderPanel(Translation.get("gb.users"), "user_16x16.png"),
|
| | | BorderLayout.NORTH);
|
| | | usersHeader = new HeaderPanel(Translation.get("gb.users"), "user_16x16.png");
|
| | | usersPanel.add(usersHeader, BorderLayout.NORTH);
|
| | | usersPanel.add(userTablePanel, BorderLayout.CENTER);
|
| | | usersPanel.add(userControls, BorderLayout.SOUTH);
|
| | |
|
| | |
| | | }
|
| | |
|
| | | private JPanel createSettingsPanel() {
|
| | | JButton refreshSettings = new JButton(Translation.get("gb.refresh"));
|
| | | refreshSettings.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | | refreshSettings();
|
| | | }
|
| | | });
|
| | |
|
| | | final SettingPanel settingPanel = new SettingPanel();
|
| | | settingsModel = new SettingsTableModel();
|
| | | defaultSettingsSorter = new TableRowSorter<SettingsTableModel>(settingsModel);
|
| | |
| | | settingsTablePanel.add(settingPanel, BorderLayout.SOUTH);
|
| | |
|
| | | JPanel settingsControls = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
|
| | | settingsControls.add(refreshSettings);
|
| | | // TODO update setting?
|
| | |
|
| | | JPanel settingsPanel = new JPanel(new BorderLayout(margin, margin)) {
|
| | |
| | | return insets;
|
| | | }
|
| | | };
|
| | | settingsPanel.add(new HeaderPanel(Translation.get("gb.settings"), "settings_16x16.png"),
|
| | | BorderLayout.NORTH);
|
| | | settingsHeader = new HeaderPanel(Translation.get("gb.settings"), "settings_16x16.png");
|
| | | settingsPanel.add(settingsHeader, BorderLayout.NORTH);
|
| | | settingsPanel.add(settingsTablePanel, BorderLayout.CENTER);
|
| | | settingsPanel.add(settingsControls, BorderLayout.SOUTH);
|
| | |
|
| | |
| | | updateRepositoriesTable();
|
| | | Utils.packColumns(repositoriesTable, 2);
|
| | |
|
| | | if (gitblit.allowAdmin()) {
|
| | | if (gitblit.allowManagement()) {
|
| | | updateUsersTable();
|
| | | updateSettingsTable();
|
| | | } else {
|
| | | // user does not have administrator privileges
|
| | | // hide admin repository buttons
|
| | |
| | | delRepository.setVisible(false);
|
| | |
|
| | | while (tabs.getTabCount() > 1) {
|
| | | // remove admin tabs
|
| | | // remove all management/administration tabs
|
| | | tabs.removeTabAt(1);
|
| | | }
|
| | | }
|
| | |
|
| | | if (gitblit.allowAdministration()) {
|
| | | updateSettingsTable();
|
| | | } else {
|
| | | // remove the settings tab
|
| | | String settingsTitle = Translation.get("gb.settings");
|
| | | for (int i = 0; i < tabs.getTabCount(); i++) {
|
| | | if (tabs.getTitleAt(i).equals(settingsTitle)) {
|
| | | tabs.removeTabAt(i);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | repositoriesModel.list.clear();
|
| | | repositoriesModel.list.addAll(gitblit.getRepositories());
|
| | | repositoriesModel.fireTableDataChanged();
|
| | | repositoriesHeader.setText(Translation.get("gb.repositories") + " ("
|
| | | + gitblit.getRepositories().size() + ")");
|
| | | }
|
| | |
|
| | | private void updateUsersTable() {
|
| | | usersModel.list.clear();
|
| | | usersModel.list.addAll(gitblit.getUsers());
|
| | | usersModel.fireTableDataChanged();
|
| | | usersHeader.setText(Translation.get("gb.users") + " (" + gitblit.getUsers().size() + ")");
|
| | | }
|
| | |
|
| | | private void updateSettingsTable() {
|
| | | settingsModel.setSettings(gitblit.getSettings());
|
| | | settingsModel.fireTableDataChanged();
|
| | | settingsHeader.setText(Translation.get("gb.settings"));
|
| | | }
|
| | |
|
| | | private void filterRepositories(final String fragment) {
|
| | |
| | | return false;
|
| | | }
|
| | | };
|
| | | TableRowSorter<SettingsTableModel> sorter = new TableRowSorter<SettingsTableModel>(settingsModel);
|
| | | TableRowSorter<SettingsTableModel> sorter = new TableRowSorter<SettingsTableModel>(
|
| | | settingsModel);
|
| | | sorter.setRowFilter(containsFilter);
|
| | | settingsTable.setRowSorter(sorter);
|
| | | }
|
| | |
| | | worker.execute();
|
| | | }
|
| | | }
|
| | |
|
| | | protected void refreshSettings() {
|
| | | GitblitWorker worker = new GitblitWorker(GitblitPanel.this, RpcRequest.LIST_SETTINGS) {
|
| | | @Override
|
| | | protected Boolean doRequest() throws IOException {
|
| | | gitblit.refreshSettings();
|
| | | return true;
|
| | | }
|
| | |
|
| | | @Override
|
| | | protected void onSuccess() {
|
| | | updateSettingsTable();
|
| | | }
|
| | | };
|
| | | worker.execute();
|
| | | }
|
| | | } |