/** {@inheritDoc} */ @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { CmrRepositoryDefinition cmrRepositoryDefinition = null; if (receiver instanceof ICmrRepositoryProvider) { cmrRepositoryDefinition = ((ICmrRepositoryProvider) receiver).getCmrRepositoryDefinition(); } else if (receiver instanceof ICmrRepositoryAndAgentProvider) { cmrRepositoryDefinition = ((ICmrRepositoryAndAgentProvider) receiver).getCmrRepositoryDefinition(); } else if (receiver instanceof IStorageDataProvider) { cmrRepositoryDefinition = ((IStorageDataProvider) receiver).getCmrRepositoryDefinition(); } else if (receiver instanceof IInputDefinitionProvider) { RepositoryDefinition repository = ((IInputDefinitionProvider) receiver).getInputDefinition().getRepositoryDefinition(); if (repository instanceof CmrRepositoryDefinition) { cmrRepositoryDefinition = (CmrRepositoryDefinition) repository; } else { return false; } } else if ("anyOnline".equals(property)) { for (CmrRepositoryDefinition cmr : InspectIT.getDefault().getCmrRepositoryManager().getCmrRepositoryDefinitions()) { if (cmr.getOnlineStatus().equals(OnlineStatus.ONLINE)) { return true; } } return false; } else { return false; } if ("onlineStatus".equals(property)) { if ("ONLINE".equals(expectedValue)) { return cmrRepositoryDefinition.getOnlineStatus() == OnlineStatus.ONLINE; } else if ("OFFLINE".equals(expectedValue)) { return cmrRepositoryDefinition.getOnlineStatus() == OnlineStatus.OFFLINE; } else if ("CHECKING".equals(expectedValue)) { return cmrRepositoryDefinition.getOnlineStatus() == OnlineStatus.CHECKING; } } else if ("recordingActive".equals(property)) { if (expectedValue instanceof Boolean) { if (cmrRepositoryDefinition.getOnlineStatus() != OnlineStatus.OFFLINE) { boolean recordingActive = cmrRepositoryDefinition.getStorageService().getRecordingState() != RecordingState.OFF; return ((Boolean) expectedValue).booleanValue() == recordingActive; } else { return false; } } } return false; }
/** {@inheritDoc} */ @Override public void repositoryAdded(CmrRepositoryDefinition cmrRepositoryDefinition) { cachedOnlineStatus.put(cmrRepositoryDefinition, cmrRepositoryDefinition.getOnlineStatus()); SafeExecutor.asyncExec( new Runnable() { @Override public void run() { updateFormMenuManager(); } }, mainForm); }
/** {@inheritDoc} */ @Override public void refresh() { // check the status of CMR, if it's online do update, if it's offline just fire update CMR // online status job if (null != displayedCmrRepositoryDefinition && OnlineStatus.OFFLINE != displayedCmrRepositoryDefinition.getOnlineStatus()) { performUpdate(true); } else if (null != displayedCmrRepositoryDefinition) { InspectIT.getDefault() .getCmrRepositoryManager() .forceCmrRepositoryOnlineStatusUpdate(displayedCmrRepositoryDefinition); } }
/** Selects the displayed repository definition. */ private void selectDisplayedCmrRepositoryDefinition() { List<CmrRepositoryDefinition> repositories = cmrRepositoryManager.getCmrRepositoryDefinitions(); if (CollectionUtils.isNotEmpty(repositories)) { // find first online for (CmrRepositoryDefinition repositoryDefinition : repositories) { if (repositoryDefinition.getOnlineStatus() == OnlineStatus.ONLINE) { displayedCmrRepositoryDefinition = repositoryDefinition; performUpdate(true); selectionProviderAdapter.setSelection( new StructuredSelection(displayedCmrRepositoryDefinition)); return; } } // if no online display first displayedCmrRepositoryDefinition = repositories.get(0); performUpdate(true); selectionProviderAdapter.setSelection( new StructuredSelection(displayedCmrRepositoryDefinition)); } }
/** Updates the tree input and refreshes the tree. */ protected void updateFormBody() { clearFormBody(); if (null == displayedCmrRepositoryDefinition) { displayMessage( "No CMR repository present. Please add the CMR repository via 'Add CMR repository' action.", Display.getDefault().getSystemImage(SWT.ICON_INFORMATION)); } else if (displayedCmrRepositoryDefinition.getOnlineStatus() == OnlineStatus.OFFLINE) { displayMessage( "Selected CMR repository is currently unavailable.", Display.getDefault().getSystemImage(SWT.ICON_WARNING)); } else if (isShowEnvironments()) { List<?> inputList = environmentLeafs; if (CollectionUtils.isEmpty(inputList)) { displayMessage( "No environment exists on selected CMR repository.", Display.getDefault().getSystemImage(SWT.ICON_INFORMATION)); } else { createTableColumns(); tableViewer.getTable().setHeaderVisible(true); tableViewer.getTable().setLinesVisible(true); tableViewer.getTable().setVisible(true); tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); tableViewer.setInput(inputList); } } else if (isShowProfiles()) { List<?> inputList = profileLeafs; if (CollectionUtils.isEmpty(inputList)) { displayMessage( "No profile exists on selected CMR repository.", Display.getDefault().getSystemImage(SWT.ICON_INFORMATION)); } else { createTableColumns(); tableViewer.getTable().setHeaderVisible(true); tableViewer.getTable().setLinesVisible(true); tableViewer.getTable().setVisible(true); tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); tableViewer.setInput(inputList); } } mainForm.getBody().layout(); }