import com.vaadin.ui.TabSheet; //导入方法依赖的package包/类
public PluginsPanelAddDialog(ApplicationContext context, PluginsPanel pluginsPanel) {
super("Add Plugins");
this.context = context;
this.pluginsPanel = pluginsPanel;
this.pluginRepositories = context.getPluginService().findPluginRepositories();
TabSheet tabSheet = new TabSheet();
AbstractLayout searchLayout = buildSearchLayout();
tabSheet.addTab(searchLayout, "Search For New Versions");
AbstractLayout uploadLayout = buildUploadLayout();
tabSheet.addTab(uploadLayout, "Upload");
searchButton = new Button("Search", e -> search());
searchButton.setEnabled(false);
uploadHandler = new UploadHandler();
uploadButton = new Upload(null, uploadHandler);
uploadButton.setImmediate(true);
uploadButton.setVisible(false);
uploadButton.setButtonCaption("Upload");
uploadButton.addFinishedListener(e -> finishedUpload());
tabSheet.addSelectedTabChangeListener(e -> {
boolean searchSelected = tabSheet.getSelectedTab().equals(searchLayout);
searchButton.setVisible(searchSelected);
uploadButton.setVisible(!searchSelected);
});
addComponent(tabSheet, 1);
tabSheet.setSelectedTab(0);
cancelButton = new Button("Cancel");
cancelButton.addClickListener(new CloseButtonListener());
addButton = new Button("Add");
addButton.setEnabled(false);
addButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
addButton.addClickListener(e -> addPlugin());
addComponent(buildButtonFooter(uploadButton, searchButton, cancelButton, addButton));
cancelButton.focus();
setWidth(550, Unit.PIXELS);
setHeight(300, Unit.PIXELS);
}