public CloudProject getSelectedCloudProject() { return projectSelector.getSelectedProject(); }
public void setSelectedCloudProject(CloudProject cloudProject) { projectSelector.setSelectedProject(cloudProject); }
private void createUIComponents() { projectSelector = new ProjectSelector(project); projectSelector.setMinimumSize(new Dimension(400, 0)); projectSelector.addProjectSelectionListener(this::updateRepositorySelector); repositorySelector = new RepositorySelector(projectSelector.getSelectedProject(), false /*canCreateRepository*/); repositorySelector .getDocument() .addDocumentListener( new DocumentAdapter() { @Override protected void textChanged(DocumentEvent event) { updateButtons(); } }); }
@SuppressWarnings("unchecked") ProjectDebuggeeBinding( @NotNull ProjectSelector projectSelector, @NotNull JComboBox targetSelector, @NotNull Action okAction) { this.projectSelector = projectSelector; this.targetSelector = targetSelector; this.okAction = okAction; this.projectSelector.addProjectSelectionListener(this::refreshDebugTargetList); this.projectSelector.loadActiveCloudProject(); }
@VisibleForTesting void handleOpenProjectSelectionDialog() { ProjectSelectionDialog projectSelectionDialog = createProjectSelectionDialog(this); CloudProject newSelection = projectSelectionDialog.showDialog(cloudProject); // if null, it means no change or user cancelled selection dialog - no update required. if (newSelection != null) { setSelectedProject(newSelection); notifyProjectSelectionListeners(); // keep as last active project if IDE project has been specified. if (ideProject != null) { ActiveCloudProjectManager.getInstance().setActiveCloudProject(newSelection, ideProject); } } }
@Test public void loadActiveProject_withoutIdeProject_doesNotChangeSelection() { projectSelector.setSelectedProject(TEST_PROJECT); projectSelector.loadActiveCloudProject(); assertThat(projectSelector.getSelectedProject()).isEqualTo(TEST_PROJECT); verifyUiStateForProject(TEST_PROJECT); }
public SetupCloudRepositoryDialog( @NotNull Project ideProject, @Nullable GitRepository gitRepository, @NotNull String title, @NotNull String okText) { super(ideProject, true); this.ideProject = ideProject; this.gitRepository = gitRepository; init(); setTitle(title); setOKButtonText(okText); setOKActionEnabled(false); projectSelector.loadActiveCloudProject(); if (projectSelector.getSelectedProject() == null) { repositorySelector.setEnabled(false); } }
public void setInputState(@Nullable CloudDebugProcessState inputState) { this.inputState = inputState; if (this.inputState != null && !Strings.isNullOrEmpty(this.inputState.getProjectName()) && !Strings.isNullOrEmpty(this.inputState.getUserEmail())) { Long projectNumber = null; if (!Strings.isNullOrEmpty(this.inputState.getProjectNumber())) { projectNumber = Long.parseLong(this.inputState.getProjectNumber()); } projectSelector.setSelectedProject( CloudProject.create( this.inputState.getProjectName(), // TODO(ivanporty) add separate project name/ID this.inputState.getProjectName(), projectNumber, this.inputState.getUserEmail())); // update the state here as well refreshDebugTargetList(projectSelector.getSelectedProject()); } }
@Test public void loadActiveProject_setsValidProject_withValidIdeProject() { projectSelector.setIdeProject(mockIdeProject); when(mockActiveCloudProjectManager.getActiveCloudProject(mockIdeProject)) .thenReturn(TEST_PROJECT); projectSelector.loadActiveCloudProject(); assertThat(projectSelector.getSelectedProject()).isEqualTo(TEST_PROJECT); verifyUiStateForProject(TEST_PROJECT); }
private void createUIComponents() { hiddenValidationTrigger = new JBCheckBox(); hiddenValidationTrigger.setVisible(false); projectSelector = new ProjectSelector(ideProject); projectSelector.addProjectSelectionListener( (selectedProject) -> { // settings editor does not see all the changes by default, use explicit notification. triggerValidation(); }); } }
@Test public void projectChange_returnValidValue() { when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.handleOpenProjectSelectionDialog(); assertThat(projectSelector.getSelectedProject()).isEqualTo(TEST_PROJECT); }
@Test public void validProject_no_LoggedInUsers_showLoginPrompt() { when(mockLoginService.isLoggedIn()).thenReturn(false); projectSelector.setSelectedProject(TEST_PROJECT); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()) .isEqualTo( GoogleCloudCoreMessageBundle.message( "cloud.project.selector.not.signed.in", TEST_PROJECT.googleUsername())); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNull(); }
public void loadActiveCloudProject() { projectSelector.loadActiveCloudProject(); }
/** Adds the given {@link ProjectSelectionListener} to the {@link ProjectSelector}. */ void addCloudProjectSelectionListener(ProjectSelectionListener listener) { projectSelector.addProjectSelectionListener(listener); }
/** * Loads active {@link CloudProject}, if IDE {@link Project} has been specified. This should be * called when project selector and the related UI are completely initialized. Calls listeners to * notify on new project selection. */ public void loadActiveCloudProject() { Optional<CloudProject> projectOptional = Optional.ofNullable(ideProject) .map(p -> ActiveCloudProjectManager.getInstance().getActiveCloudProject(p)); projectOptional.ifPresent( activeCloudProject -> { // do not preset and notify on active project if not signed in to avoid misleading client // code to assume project selection is made with an active account. if (Services.getLoginService().isLoggedIn()) { setSelectedProject(activeCloudProject); notifyProjectSelectionListeners(); } }); }
private void createUIComponents() { projectSelector = new ProjectSelector(project); } }
@Test public void getManagementUI_withLibraryAndProjectSelected_isEnabled() { CloudLibrary library = LIBRARY_1.toCloudLibrary(); GoogleCloudApiSelectorPanel panel = new GoogleCloudApiSelectorPanel(ImmutableList.of(library), testFixture.getProject()); JTable table = panel.getCloudLibrariesTable(); checkAddLibraryCheckbox(table, 0); panel.getDetailsPanel().setCloudLibrary(library, panel.getApiManagementMap().get(library)); CloudProject cloudProject = CloudProject.create("name", "id", "user"); ProjectSelector projectSelector = panel.getProjectSelector(); projectSelector.setSelectedProject(cloudProject); projectSelector .getProjectSelectionListeners() .forEach(listener -> listener.projectSelected(cloudProject)); assertThat(panel.getDetailsPanel().getEnableApiCheckbox().isEnabled()).isTrue(); assertThat(panel.getDetailsPanel().getManagementInfoPanel().isVisible()).isFalse(); }
@Test public void loadActiveProject_validProject_triggerListeners() { projectSelector.setIdeProject(mockIdeProject); when(mockActiveCloudProjectManager.getActiveCloudProject(mockIdeProject)) .thenReturn(TEST_PROJECT); projectSelector.loadActiveCloudProject(); verify(projectSelectionListener).projectSelected(TEST_PROJECT); }
@Test public void projectIsNotSelected_doesNotTriggerListeners() { // this will return null (unselected) for default mock dialog. projectSelector.handleOpenProjectSelectionDialog(); verifyNoMoreInteractions(projectSelectionListener); }
@Test public void removedListener_isNotCalled() { when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.removeProjectSelectionListener(projectSelectionListener); projectSelector.handleOpenProjectSelectionDialog(); verifyNoMoreInteractions(projectSelectionListener); }