下面列出了怎么用org.eclipse.jface.dialogs.DialogPage的API类实例代码及写法,或者点击链接到github查看源代码。
public static void applyToStatusLine(DialogPage page, IStatus status) {
String message = status.getMessage();
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message.isEmpty()) {
message = null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/** copied from PropertyAndPreferencePage */
private static void applyToStatusLine(DialogPage page, IStatus status) {
String message = status.getMessage();
if (message != null && message.length() == 0) {
message = null;
}
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
private void update ()
{
final String filterType = this.filterTypeEntry.getText ();
final String filterData = this.filterEntry.getText ();
boolean warning = false;
if ( "".equals ( filterType ) )
{
setPageComplete ( false );
setMessage ( "Select a filter type", DialogPage.ERROR );
return;
}
if ( "".equals ( filterData ) )
{
setMessage ( "Empty filter string might be a problem", DialogPage.WARNING );
warning = true;
}
if ( !warning )
{
setMessage ( null );
}
setPageComplete ( true );
}
private void validateFile() {
String pathToSolc = compilerPathFieldEditor.getStringValue();
if (pathToSolc == null || pathToSolc.isEmpty()) {
return;
}
File file = new File(pathToSolc);
if (file.exists() && file.isFile() && file.canExecute()
&& (file.getName().contains("solc") || file.getName().contains("solcjs"))) {
if (file.getName().contains("solcjs")) {
setMessage("Use of 'solcjs' is discuraged!", DialogPage.WARNING);
}
} else {
setValid(false);
setErrorMessage("Path must point to 'solc' or 'solcjs' executable");
}
}
/**
* Applies the status to the status line of a dialog page.
*/
private static void applyToStatusLine(DialogPage page, IStatus status) {
String message = Status.OK_STATUS.equals(status) ? null : status.getMessage();
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message != null && message.length() == 0) {
message = null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
private static void applyToStatusLine(DialogPage page, IStatus status) {
String message = Status.OK_STATUS.equals(status) ? null : status.getMessage();
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message != null && message.length() == 0) {
message = null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Convenience method to set a validation message on {@link DialogPage} from the result of calling
* {@link #validateMavenSettings()}.
*
* @return {@code true} if no validation message was set; {@code false} otherwise
*
* @see #validateMavenSettings()
*/
public boolean setValidationMessage(DialogPage page) {
IStatus status = validateMavenSettings();
if (status.isOK()) {
return true;
}
if (IStatus.ERROR == status.getSeverity()) {
page.setErrorMessage(status.getMessage());
} else if (IStatus.WARNING == status.getSeverity()) {
page.setMessage(status.getMessage(), IMessageProvider.WARNING);
} else if (IStatus.INFO == status.getSeverity()) {
page.setMessage(status.getMessage(), IMessageProvider.INFORMATION);
}
return false;
}
private static void applyToStatusLine(DialogPage page, IStatus status) {
String message = status.getMessage();
if (message != null && message.length() == 0) {
message = null;
}
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Add a status bar message.
*
* @param page
* @param status
*/
protected static void applyToStatusLine(DialogPage page, IStatus status) {
String errorMessage = null;
String warningMessage = null;
String statusMessage = status.getMessage();
if (statusMessage.length() > 0) {
if (status.matches(IStatus.ERROR)) {
errorMessage = statusMessage;
} else if (!status.isOK()) {
warningMessage = statusMessage;
}
}
page.setErrorMessage(errorMessage);
page.setMessage(warningMessage, status.getSeverity());
}
/**
* Applies the status to the status line of a dialog page.
*/
public static void applyToStatusLine(DialogPage page, IStatus status) {
String message= Status.OK_STATUS.equals(status) ? null : status.getMessage();
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message.length() == 0) {
message= null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Applies the status to the status line of a dialog page.
* @param page the dialog page
* @param status the status to apply
*/
public static void applyToStatusLine(DialogPage page, IStatus status) {
String message= status.getMessage();
if (message != null && message.length() == 0) {
message= null;
}
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Applies the status to the status line of a dialog page.
*/
public static void applyToStatusLine(DialogPage page, IStatus status) {
String message= status.getMessage();
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message.length() == 0) {
message= null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Applies the status to the status line of a dialog page.
*
* @param page the dialog page
* @param status the status
*/
public void applyToStatusLine(DialogPage page, IStatus status) {
String message = status.getMessage();
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message.length() == 0) {
message = null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Applies the status to the status line of a dialog page.
* @param page the dialog page
* @param status the status to apply
*/
public static void applyToStatusLine(DialogPage page, IStatus status) {
String message = status.getMessage();
if (message != null && message.length() == 0) {
message = null;
}
switch (status.getSeverity()) {
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
private boolean validatePackagesUnique(List<IApackDependency> apackDependencies) {
List<String> usedPackages = new ArrayList<String>();
usedPackages.add(this.cloneData.packageRef.getName());
for (IApackDependency apackDependency : apackDependencies) {
String newPackageName = apackDependency.getTargetPackage().getName();
if (usedPackages.contains(newPackageName)) {
setMessage(NLS.bind(Messages.AbapGitWizardPageApack_task_package_used_multiple_times, newPackageName), DialogPage.ERROR);
setPageComplete(false);
return false;
} else {
usedPackages.add(newPackageName);
}
}
return true;
}
private boolean validatePackageTransportLayer(IAdtTransportCheckData[] dependencyCheckData) {
IAdtTransportCheckData referenceCheckData = dependencyCheckData[0];
for (int i = 1; i < dependencyCheckData.length; i++) {
if (!referenceCheckData.getPackageSoftwareComponent().equals(dependencyCheckData[i].getPackageSoftwareComponent())
|| !referenceCheckData.getPackageTransportLayer().equals(dependencyCheckData[i].getPackageTransportLayer())) {
setMessage(NLS.bind(Messages.AbapGitWizardPageApack_task_transport_layers_differ, referenceCheckData.getObjectName(),
dependencyCheckData[i].getObjectName()), DialogPage.ERROR);
setPageComplete(false);
return false;
}
}
return true;
}
private boolean validateCheckData(List<IApackDependency> apackDependencies, IAdtTransportCheckData[] dependencyCheckData) {
if ((dependencyCheckData.length - 1) != apackDependencies.size()) {
setMessage(Messages.AbapGitWizardPageApack_task_error_retrieving_transport_data, DialogPage.ERROR);
setPageComplete(false);
return false;
}
return true;
}
private boolean validatePackageNotEmpty(IApackDependency apackDependency) {
if (apackDependency.getTargetPackage() == null || apackDependency.getTargetPackage().getName() == null
|| apackDependency.getTargetPackage().getName().isEmpty()) {
setMessage(NLS.bind(Messages.AbapGitWizardPageApack_task_invalid_package_assignment,
apackDependency.getGroupId() + "-" + apackDependency.getArtifactId()), DialogPage.ERROR); //$NON-NLS-1$
setPageComplete(false);
return false;
}
return true;
}
private boolean validateClientOnly() {
setMessage(null);
if (this.comboBranches.getCombo().getText().isEmpty()) {
setMessage(Messages.AbapGitWizardPageBranchAndPackage_combobox_branch_message, DialogPage.INFORMATION);
return false;
}
if (this.txtPackage.getTextWidget().getText().isEmpty()) {
setMessage(Messages.AbapGitWizardPageBranchAndPackage_text_package_message, DialogPage.INFORMATION);
return false;
}
return true;
}
/**
* Sets the error message for the active wizard page.
*
* Note that this method has no effect if the current page doesn't support error messages.
*/
private void setErrorMessage(String message) {
IWizardContainer container = getContainer();
if (container != null) {
IWizardPage currentPage = container.getCurrentPage();
if (currentPage instanceof DialogPage) {
((DialogPage) currentPage).setErrorMessage(message);
}
}
}
@Before
public void setup() {
page = new DialogPage() {
@Override
public void createControl(Composite parent) {
throw new UnsupportedOperationException();
}
};
target = new DialogPageMessageTarget(page);
}
@Test
public void clear() {
target.setError("error_msg");
target.clear();
assertNull(page.getMessage());
assertEquals(DialogPage.NONE, page.getMessageType());
}
/**
* Create a new instance of a project SDK composite.
* @param dialogPage that hosts the parent composite
* @param parent the parent composite to add this one to
* @param hspans[3] - hspans for label, combobox and button
*/
public ProjectSdkPanel (DialogPage dialogPage, Composite parent, int hspans[]) {
Assert.isTrue(hspans.length == 3, "ProjectSdkPanel() - wrong hspans[] array"); //$NON-NLS-1$
Composite container = parent;
// if (hspan < 3) {
// container = SWTFactory.createComposite(parent, parent.getFont(), 3, hspan, GridData.FILL_HORIZONTAL);
// hspan = 3;
// }
createControl(dialogPage, container, hspans);
}
/**
* Applies the status to the status line of a dialog page.
*/
public static void applyToStatusLine(DialogPage page, IStatus status)
{
String message = status.getMessage();
switch (status.getSeverity())
{
case IStatus.OK:
page.setMessage(message, IMessageProvider.NONE);
page.setErrorMessage(null);
break;
case IStatus.WARNING:
page.setMessage(message, IMessageProvider.WARNING);
page.setErrorMessage(null);
break;
case IStatus.INFO:
page.setMessage(message, IMessageProvider.INFORMATION);
page.setErrorMessage(null);
break;
default:
if (message.length() == 0)
{
message = null;
}
page.setMessage(null);
page.setErrorMessage(message);
break;
}
}
/**
* Applies the status to the status line of a dialog page.
*
* @param page
* the dialog page
* @param status
* the status to apply
*/
public static void applyToStatusLine( DialogPage page, IStatus status )
{
if ( status == null )
{
page.setMessage( null, IMessageProvider.NONE );
page.setErrorMessage( null );
return;
}
String message = status.getMessage( );
if ( message != null && message.length( ) == 0 )
{
message = null;
}
switch ( status.getSeverity( ) )
{
case IStatus.OK :
page.setMessage( message, IMessageProvider.NONE );
page.setErrorMessage( null );
break;
case IStatus.WARNING :
page.setMessage( message, IMessageProvider.WARNING );
page.setErrorMessage( null );
break;
case IStatus.INFO :
page.setMessage( message, IMessageProvider.INFORMATION );
page.setErrorMessage( null );
break;
default :
page.setMessage( null );
page.setErrorMessage( message );
break;
}
}
public static void applyStatusToPage(DialogPage page, IStatus status) {
String message = StringUtil.emptyAsNull(status.getMessage());
if(status.getSeverity() == IStatus.ERROR) {
page.setErrorMessage(message);
page.setMessage(null);
} else {
page.setErrorMessage(null);
page.setMessage(message, severityToMessageType(status));
}
}
@Override
public void handlePageChanging(final PageChangingEvent event) {
//-> Credentials page -> Branch & Package page
if (event.getCurrentPage() == AbapGitWizard.this.pageRepo && event.getTargetPage() == AbapGitWizard.this.pageBranchAndPackage
&& !AbapGitWizard.this.pageRepo.validateAll()) {
event.doit = false;
return;
}
//-> Branch & Package page -> Credentials page
if (event.getCurrentPage() == AbapGitWizard.this.pageBranchAndPackage && event.getTargetPage() == AbapGitWizard.this.pageRepo) {
event.doit = true;
return;
}
//-> Branch & Package page -> Transport page
if (event.getCurrentPage() == AbapGitWizard.this.pageBranchAndPackage
&& event.getTargetPage() == AbapGitWizard.this.transportPage) {
if (!AbapGitWizard.this.pageBranchAndPackage.validateAll()) {
event.doit = false;
return;
}
}
//-> Branch & Package page -> Any page
if (event.getCurrentPage() == AbapGitWizard.this.pageBranchAndPackage
&& !AbapGitWizard.this.pageBranchAndPackage.validateAll()) {
event.doit = false;
return;
}
//-> Prepare transport page
if (event.getTargetPage() == AbapGitWizard.this.transportPage) {
try {
// The transport service requires URIs to objects we want to create in the
// target package.
// However, we do not know these URIs from the client.
// Instead, give it the URI of the package in which we clone.
IAdtObjectReference packageRef = AbapGitWizard.this.cloneData.packageRef;
IAdtObjectReference checkRef = IAdtCoreFactory.eINSTANCE.createAdtObjectReference();
checkRef.setUri(packageRef.getUri());
IAdtTransportCheckData checkData = AbapGitWizard.this.transportService.check(checkRef, packageRef.getPackageName(),
true);
AbapGitWizard.this.transportPage.setCheckData(checkData);
} catch (Exception e) {
AbapGitWizard.this.pageBranchAndPackage.setMessage(e.getMessage(), DialogPage.ERROR);
}
}
//-> APACK page -> Any page
if (event.getCurrentPage() == AbapGitWizard.this.pageApack && !AbapGitWizard.this.pageApack.validateAll()) {
event.doit = false;
return;
}
}
@Override
public void setVisible(boolean visible) {
//Navigate to transport request page if repo is public
if (this.cloneData.externalRepoInfo != null && this.cloneData.externalRepoInfo.getAccessMode() == AccessMode.PUBLIC
&& this.pullAction) {
getContainer().showPage(getNextPage());
getContainer().getCurrentPage().setVisible(visible);
getContainer().getCurrentPage().setPreviousPage(getContainer().getCurrentPage());
return;
}
if (visible && !this.wasVisibleBefore) {
this.wasVisibleBefore = true;
boolean isSupported[] = new boolean[1];
try {
getContainer().run(true, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask(Messages.AbapGitWizardPageRepositoryAndCredentials_task_check_compatibility,
IProgressMonitor.UNKNOWN);
isSupported[0] = RepositoryServiceFactory
.createRepositoryService(AbapGitWizardPageRepositoryAndCredentials.this.destination, monitor) != null;
}
});
if (!isSupported[0]) {
setPageComplete(false);
setMessage(NLS.bind(Messages.AbapGitView_not_supported, this.project.getName()), DialogPage.ERROR);
return;
}
} catch (InvocationTargetException | InterruptedException e) {
setPageComplete(false);
setMessage(e.getMessage(), DialogPage.ERROR);
return;
}
}
super.setVisible(visible);
}
private boolean validateClientOnly() {
setMessage(null);
setPageComplete(true);
if (this.txtURL.getText().isEmpty() || !this.txtURL.getText().startsWith("https://")) { //$NON-NLS-1$
setMessage(Messages.AbapGitWizardPageRepositoryAndCredentials_validate_url_error, DialogPage.INFORMATION);
setPageComplete(false);
return false;
}
// user and pw
if (this.cloneData.externalRepoInfo != null && this.cloneData.externalRepoInfo.getAccessMode() == AccessMode.PRIVATE) {
setUserAndPassControlsVisible(true);
if (this.txtUser.getText().isEmpty()) {
setMessage(Messages.AbapGitWizardPageRepositoryAndCredentials_validate_user_error, DialogPage.INFORMATION);
setPageComplete(false);
return false;
}
if (this.txtPwd.getText().isEmpty()) {
setMessage(Messages.AbapGitWizardPageRepositoryAndCredentials_validate_password_error, DialogPage.INFORMATION);
setPageComplete(false);
return false;
}
}
Matcher matcher = this.r.matcher(this.txtURL.getText());
if (matcher.find() && this.txtURL.getText().endsWith(".git")) { //$NON-NLS-1$
this.newUrl = this.txtURL.getText();
this.txtURL.setText(this.newUrl.replaceAll(this.ptrn, "https://")); //$NON-NLS-1$
setUserAndPassControlsVisible(true);
this.txtUser.setText(matcher.group(3));
this.txtPwd.setText(matcher.group(5));
setMessage(Messages.AbapGitWizardPageRepositoryAndCredentials_repo_user_pass, DialogPage.INFORMATION);
setPageComplete(true);
}
return true;
}
public boolean validateAll() {
if (!validateClientOnly()) {
return false;
}
if (this.cloneData.repositories == null) {
fetchRepositories();
if (this.cloneData.repositories == null) {
return false;
}
}
if (this.cloneData.repositories.getRepositories().stream()
.anyMatch(r -> r.getUrl().toString().equals(this.txtURL.getText())) && !this.pullAction) {
setPageComplete(false);
setMessage(Messages.AbapGitWizardPageRepositoryAndCredentials_repo_in_use_error, DialogPage.ERROR);
return false;
}
if (this.cloneData.externalRepoInfo == null) {
fetchExternalRepoInfo();
if (this.cloneData.externalRepoInfo == null) {
return false;
}
}
if (this.cloneData.externalRepoInfo.getAccessMode() == AccessMode.PRIVATE) {
if (!this.txtUser.isVisible()) {
setUserAndPassControlsVisible(true);
this.txtUser.setFocus();
setPageComplete(false);
setMessage(Messages.AbapGitWizardPageRepositoryAndCredentials_repo_is_private, DialogPage.INFORMATION);
return false;
} else {
// update the info, now that we have proper user/password
if (!fetchExternalRepoInfo()) {
return false;
}
}
}
//Close the tray of the dialog if it was open
TrayDialog dialog = (TrayDialog) getContainer();
if (dialog.getTray() != null) {
dialog.closeTray();
}
return true;
}