in PluginsAndFeatures/azure-toolkit-for-intellij/src/main/java/com/microsoft/azure/toolkit/intellij/docker/ContainerRegistryPropertyView.java [170:305]
private void createUIComponents() {
DefaultTableModel repoModel = new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
repoModel.addColumn(REPOSITORY);
tblRepo = new JBTable(repoModel);
tblRepo.getEmptyText().setText(TABLE_LOADING_MESSAGE);
tblRepo.setRowSelectionAllowed(true);
tblRepo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tblRepo.setStriped(true);
tblRepo.getSelectionModel().addListSelectionListener(event -> {
if (event.getValueIsAdjusting()) {
return;
}
int selectedRow = tblRepo.getSelectedRow();
if (selectedRow < 0 || selectedRow >= tblRepo.getRowCount()) {
return;
}
String selectedRepo = (String) tblRepo.getModel().getValueAt(selectedRow, 0);
if (Utils.isEmptyString(selectedRepo) || Comparing.equal(selectedRepo, currentRepo)) {
return;
}
currentRepo = selectedRepo;
disableWidgets(false, true);
tblTag.getEmptyText().setText(TABLE_LOADING_MESSAGE);
containerPropertyPresenter.onListTags(subscriptionId, registryId, currentRepo, true /*isNextPage*/);
});
btnRepoRefresh = new AnActionButton(REFRESH, AllIcons.Actions.Refresh) {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
disableWidgets(true, true);
tblTag.getEmptyText().setText(TABLE_EMPTY_MESSAGE);
containerPropertyPresenter.onRefreshRepositories(subscriptionId, registryId, true /*isNextPage*/);
}
};
btnRepoPrevious = new AnActionButton(PREVIOUS_PAGE, AllIcons.Actions.MoveUp) {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
disableWidgets(true, true);
tblTag.getEmptyText().setText(TABLE_EMPTY_MESSAGE);
containerPropertyPresenter.onListRepositories(subscriptionId, registryId, false /*isNextPage*/);
}
};
btnRepoNext = new AnActionButton(NEXT_PAGE, AllIcons.Actions.MoveDown) {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
disableWidgets(true, true);
tblTag.getEmptyText().setText(TABLE_EMPTY_MESSAGE);
containerPropertyPresenter.onListRepositories(subscriptionId, registryId, true /*isNextPage*/);
}
};
ToolbarDecorator repoDecorator = ToolbarDecorator.createDecorator(tblRepo)
.addExtraActions(btnRepoRefresh)
.addExtraAction(btnRepoPrevious)
.addExtraAction(btnRepoNext)
.setToolbarPosition(ActionToolbarPosition.BOTTOM)
.setToolbarBorder(JBUI.Borders.empty());
pnlRepoTable = repoDecorator.createPanel();
DefaultTableModel tagModel = new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
tagModel.addColumn(TAG);
tblTag = new JBTable(tagModel);
tblTag.getEmptyText().setText(TABLE_EMPTY_MESSAGE);
tblTag.setRowSelectionAllowed(true);
tblTag.setStriped(true);
tblTag.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tblTag.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e)) {
int rowIndex = tblTag.getSelectedRow();
if (rowIndex < 0 || rowIndex >= tblTag.getRowCount()) {
return;
}
currentTag = (String) tblTag.getModel().getValueAt(rowIndex, 0);
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
});
btnTagRefresh = new AnActionButton(REFRESH, AllIcons.Actions.Refresh) {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
if (Utils.isEmptyString(currentRepo)) {
return;
}
disableWidgets(false, true);
containerPropertyPresenter.onListTags(subscriptionId, registryId, currentRepo, true /*isNextPage*/);
}
};
btnTagPrevious = new AnActionButton(PREVIOUS_PAGE, AllIcons.Actions.MoveUp) {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
if (Utils.isEmptyString(currentRepo)) {
return;
}
disableWidgets(false, true);
containerPropertyPresenter.onListTags(subscriptionId, registryId, currentRepo, false /*isNextPage*/);
}
};
btnTagNext = new AnActionButton(NEXT_PAGE, AllIcons.Actions.MoveDown) {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
if (Utils.isEmptyString(currentRepo)) {
return;
}
disableWidgets(false, true);
containerPropertyPresenter.onListTags(subscriptionId, registryId, currentRepo, true /*isNextPage*/);
}
};
ToolbarDecorator tagDecorator = ToolbarDecorator.createDecorator(tblTag)
.addExtraActions(btnTagRefresh)
.addExtraAction(btnTagPrevious)
.addExtraAction(btnTagNext)
.setToolbarPosition(ActionToolbarPosition.BOTTOM)
.setToolbarBorder(JBUI.Borders.empty());
pnlTagTable = tagDecorator.createPanel();
}