/** * Adds eSWT Command to this command. * * @param control The Control where eSWT Command is added. For example Shell. * @param isDefault If true, created eSWT command is set to be default one. */ void addESWTCommand(Control control, final boolean isDefault) { final Control finalControl = control; ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { eswtAddESWTCommand(finalControl, isDefault); } }); }
/** * Removes eSWT Command from this command. * * @param control The Control where eSWT Command is located. */ void removeESWTCommand(Control control) { final Control finalControl = control; ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { eswtRemoveESWTCommand(finalControl); } }); }
/** Dispose Alert. */ void dispose() { super.dispose(); ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { topShell.dispose(); } }); }
/** * Checks if the text label's scrollbar is visible. * * @return true if the scrollbar is visible. */ private boolean isTextScrolling() { ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { textScrolling = eswtScrolledText.isTextScrolling(); } }); return textScrolling; }
/** * Sets the text used in the Alert. * * @param newText the Alert's text string, or null if there is no text */ public void setString(String newText) { text = newText; ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { String temp = (text != null) ? text : getDefaultText(type); eswtScrolledText.setText(temp); eswtSetPreferredContentSize(-1, eswtGetPreferredContentHeight()); getContentComp().layout(); } }); setCommandsVisibility(isModal()); }
/** Update indicator if it changed. */ void updateIndicator() { ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { if (indicator != null) { // show ProgressBar if (indicator.isIndefinite()) { // indefinite ProgressBar switch (indicator.getValue()) { case Gauge.CONTINUOUS_IDLE: case Gauge.INCREMENTAL_IDLE: // currently these are mapped to full progress bar // TODO: eSWT support required eswtUpdateProgressbar(getContentComp(), false, true); eswtSetProgressbarValues(0, 1, 1); break; case Gauge.CONTINUOUS_RUNNING: eswtUpdateProgressbar(getContentComp(), true, true); break; case Gauge.INCREMENTAL_UPDATING: // currently this are mapped to blinking // empty and full progress bar // TODO: eSWT support required eswtUpdateProgressbar(getContentComp(), false, true); if (eswtProgressBar.getSelection() > 0) { eswtSetProgressbarValues(0, 1, 0); } else { eswtSetProgressbarValues(0, 1, 1); } break; default: break; } } else { // definite ProgressBar eswtUpdateProgressbar(getContentComp(), false, true); eswtSetProgressbarValues(0, indicator.getMaxValue(), indicator.getValue()); } } else { // hide ProgressBar eswtUpdateProgressbar(getContentComp(), false, false); } eswtSetPreferredContentSize(-1, eswtGetPreferredContentHeight()); getContentComp().layout(); } }); }
/** * Sets the image of this Alert. * * @param newImage an Image, or null if there is no image */ public void setImage(Image newImage) { image = newImage; ESWTUIThreadRunner.syncExec( new Runnable() { public void run() { Image temp = (image != null) ? image : null; // Get the image size from QT Style for scaling int scaleToSize = Style.pixelMetric(Style.QSTYLE_PM_MESSAGEBOXICONSIZE); if (temp != null) { // calculate the aspect ratio float aspectRatio = (float) temp.getHeight() / temp.getWidth(); // check the image size if ((temp.getWidth() > scaleToSize) || (temp.getHeight() > scaleToSize)) { // we need to scale down the image if (temp.getWidth() > scaleToSize) { // Width is greater Image wScaled = Image.createImage(temp, scaleToSize, (int) (scaleToSize * aspectRatio)); // now check the new dimension against height if (wScaled.getHeight() > scaleToSize) { // scale the image again Image whScaled = Image.createImage(temp, scaleToSize, scaleToSize); eswtImgLabel.setImage(Image.getESWTImage(whScaled)); } else { // height was ok after scaling on width eswtImgLabel.setImage(Image.getESWTImage(wScaled)); } } else if (temp.getHeight() > scaleToSize) { // Height is greater Image hScaled = Image.createImage(temp, (int) (scaleToSize / aspectRatio), scaleToSize); // now check the new dimension against width if (hScaled.getWidth() > scaleToSize) { // scale the image again Image hwScaled = Image.createImage(temp, scaleToSize, scaleToSize); eswtImgLabel.setImage(Image.getESWTImage(hwScaled)); } else { // widh was ok after scaling using height eswtImgLabel.setImage(Image.getESWTImage(hScaled)); } } } else { // image is right size eswtImgLabel.setImage(Image.getESWTImage(temp)); } } else { // no image if (type != null) { // display the default image eswtImgLabel.setStandardIcon(getDefaultImageType(type), scaleToSize, scaleToSize); eswtImgLabel.pack(); } } eswtSetPreferredContentSize(-1, eswtGetPreferredContentHeight()); getContentComp().layout(); } }); }