From beff1f5b07c1fdf98d1ee7e3cf56df45ba7192a6 Mon Sep 17 00:00:00 2001 From: "minkee.lee" Date: Mon, 21 Dec 2015 14:37:30 +0900 Subject: [PATCH] export-image: add cancel button to dialog Add cancel button to dialog for compress. ( No | Cancel | Yes ) Change-Id: Icc7f24850a21cbb5f4e251b610ada1c19df21ffb Signed-off-by: minkee.lee --- resource/strings/uimessages.properties | 5 +- .../tizen/emulator/manager/ui/MenuHandling.java | 16 ++- .../emulator/manager/ui/dialog/MessageDialog.java | 140 +++++++++++---------- 3 files changed, 89 insertions(+), 72 deletions(-) diff --git a/resource/strings/uimessages.properties b/resource/strings/uimessages.properties index d6f9017..2194136 100644 --- a/resource/strings/uimessages.properties +++ b/resource/strings/uimessages.properties @@ -45,8 +45,9 @@ MenuHandling.ExportAsError.0=Not allowed to 'Export as base image' active VMs. MenuHandling.ExportAsError.1=] is running now... MenuHandling.ExportDiglogTitle.0=Export 'Base Image' As MenuHandling.ExportAsCompressDialogTitle=Create new base image -MenuHandling.ExportAsCompressDialogBody.0=Do you want create compressed image? -MenuHandling.ExportAsCompressDialogBody.1=(It takes more time but size is smaller) +MenuHandling.ExportAsCompressDialogBody.0=Do you want to create compressed image? +MenuHandling.ExportAsCompressDialogBody.1=(It takes longer time but size is smaller) +MenuHandling.ExportAsUserCancel=User canceled. MenuHandling.ResetError.0=Not allowed to reset active VMs. MenuHandling.ResetError.1=] is running now... MenuHandling.ResetInfo.0=This VM will be formatted. diff --git a/src/org/tizen/emulator/manager/ui/MenuHandling.java b/src/org/tizen/emulator/manager/ui/MenuHandling.java index 9666091..2c40e69 100644 --- a/src/org/tizen/emulator/manager/ui/MenuHandling.java +++ b/src/org/tizen/emulator/manager/ui/MenuHandling.java @@ -130,11 +130,23 @@ public class MenuHandling { // check compress MessageDialog dlg = new MessageDialog(); - int res = dlg.openYesNoDialog(Messages.getString("MenuHandling.ExportAsCompressDialogTitle"), + int res = dlg.openYesNoCancelDialog(Messages.getString("MenuHandling.ExportAsCompressDialogTitle"), Messages.getString("MenuHandling.ExportAsCompressDialogBody.0") + StringResources.NEW_LINE + Messages.getString("MenuHandling.ExportAsCompressDialogBody.1")); - boolean useCompress = (res == SWT.YES); + + boolean useCompress; + if (res == SWT.YES) { + useCompress = true; + + } else if (res == SWT.NO) { + useCompress = false; + + } else { + throw new VMWorkerException( + Messages.getString("MenuHandling.ExportAsUserCancel")); + } + // block other function while to create base image property.setRunning(true); diff --git a/src/org/tizen/emulator/manager/ui/dialog/MessageDialog.java b/src/org/tizen/emulator/manager/ui/dialog/MessageDialog.java index ccb59ae..c50768e 100644 --- a/src/org/tizen/emulator/manager/ui/dialog/MessageDialog.java +++ b/src/org/tizen/emulator/manager/ui/dialog/MessageDialog.java @@ -131,6 +131,12 @@ public class MessageDialog return openMessageDialog(title, message, SWT.ICON_QUESTION, SWT.YES | SWT.NO); } + + /** yes, no, cancel **/ + public int openYesNoCancelDialog(final String title, final String message) { + return openMessageDialog(title, message, SWT.ICON_QUESTION, SWT.YES | SWT.NO | SWT.CANCEL); + } + public int openWarningAndSelectionDialog(final String message) { return openMessageDialog(Messages.getString("MessageDialog.0"), message, SWT.ICON_WARNING, SWT.OK | SWT.CANCEL); //$NON-NLS-1$ } @@ -208,7 +214,7 @@ public class MessageDialog new Label(dialog, SWT.NONE); new Label(dialog, SWT.NONE); - makeButtonComposite(style); + makeButtonComposite(style, icon.getSize().x); dialog.open(); while(!dialog.isDisposed()) { @@ -257,7 +263,7 @@ public class MessageDialog new Label(dialog, SWT.NONE); new Label(dialog, SWT.NONE); - makeButtonComposite(style); + makeButtonComposite(style, icon.getSize().x); dialog.open(); while(!dialog.isDisposed()) { @@ -269,101 +275,99 @@ public class MessageDialog return msgResponse; } - private void makeButtonComposite(int style) { - // button - Composite buttonComposite = new Composite(dialog, SWT.NONE); - GridLayout layout = new GridLayout(2, false); - layout.horizontalSpacing = 5; - layout.verticalSpacing = 0; - layout.marginBottom = 0; - layout.marginHeight = 0; - layout.marginLeft = 0; - layout.marginRight = 0; - layout.marginTop = 0; - layout.marginWidth = 0; - buttonComposite.setLayout(layout); - buttonComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.BOTTOM, false, false)); - //buttonComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + private void adjustDialogSize(int buttonNum, int iconWidth) { + + int dialogWidth = dialog.getSize().x; + int sizeForButton = iconWidth + buttonNum * 105; + if (sizeForButton > dialogWidth) { + dialog.setSize(sizeForButton, dialog.getSize().y); + dialog.layout(true, true); + } + } + + private void makeButtonComposite(int style, int iconWidth) { - // yes/no button - if (checkYesNoButton(buttonComposite, style)) { + // yes, no, cancel + if (checkYesNoCancelButton(style)) { + adjustDialogSize(3, iconWidth); return; } - // ok/cancel button + Composite buttonComposite = makeButtonComp(2); + // ok | ok, cancel if ((style & SWT.CANCEL) != 0 ) { - Button cancleButton = new Button(buttonComposite, SWT.PUSH); - cancleButton.setLayoutData(new GridData(90, SWT.DEFAULT)); + Button cancleButton = makeButton(buttonComposite, SWT.CANCEL); cancleButton.setText(StringResources.CANCEL); cancleButton.setFocus(); - cancleButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - dialog.close(); - msgResponse = SWT.CANCEL; - } - @Override - public void widgetDefaultSelected(SelectionEvent e) { - } - }); - cancleButton.setFocus(); + } else { new Label(dialog, SWT.NONE); } - Button okButton = new Button(buttonComposite, SWT.PUSH); - okButton.setLayoutData(new GridData(90, SWT.DEFAULT)); + Button okButton = makeButton(buttonComposite, SWT.OK); okButton.setText(StringResources.OK); okButton.setFocus(); - okButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - dialog.close(); - msgResponse = SWT.OK; - } - @Override - public void widgetDefaultSelected(SelectionEvent e) { - } - }); + if ((style & SWT.CANCEL) == 0 ) { okButton.setFocus(); } + adjustDialogSize(2, iconWidth); } - private boolean checkYesNoButton(Composite buttonComposite, int style) { - if ((style & SWT.YES) == 0 ) { - return false; - } - Button yesButton = new Button(buttonComposite, SWT.PUSH); - yesButton.setLayoutData(new GridData(90, SWT.DEFAULT)); - yesButton.setText(StringResources.YES); - yesButton.setFocus(); - yesButton.addSelectionListener(new SelectionListener() { + private Composite makeButtonComp(int buttonNum) { + // button + Composite buttonComposite = new Composite(dialog, SWT.NONE); + GridLayout layout = new GridLayout(buttonNum, false); + layout.horizontalSpacing = 5; + layout.verticalSpacing = 0; + layout.marginBottom = 0; + layout.marginHeight = 0; + layout.marginLeft = 0; + layout.marginRight = 0; + layout.marginTop = 0; + layout.marginWidth = 0; + buttonComposite.setLayout(layout); + buttonComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.BOTTOM, false, false)); + //buttonComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + + return buttonComposite; + } + + private Button makeButton(Composite buttonComposite, final int style) { + Button button = new Button(buttonComposite, SWT.PUSH); + button.setLayoutData(new GridData(90, SWT.DEFAULT)); + button.setFocus(); + button.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { dialog.close(); - msgResponse = SWT.YES; + msgResponse = style; } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); + return button; + } + + private boolean checkYesNoCancelButton(int style) { + if ((style & SWT.YES) == 0 + || (style & SWT.NO) == 0 + || (style & SWT.CANCEL) == 0 ) { + return false; + } - Button noButton = new Button(buttonComposite, SWT.PUSH); - noButton.setLayoutData(new GridData(90, SWT.DEFAULT)); + Composite buttonComposite = makeButtonComp(3); + + Button noButton = makeButton(buttonComposite, SWT.NO); noButton.setText(StringResources.NO); - noButton.setFocus(); - noButton.addSelectionListener(new SelectionListener() { - @Override - public void widgetSelected(SelectionEvent e) { - dialog.close(); - msgResponse = SWT.NO; - } - @Override - public void widgetDefaultSelected(SelectionEvent e) { - } - }); + + Button cancelButton = makeButton(buttonComposite, SWT.CANCEL); + cancelButton.setText(StringResources.CANCEL); + + Button yesButton = makeButton(buttonComposite, SWT.YES); + yesButton.setText(StringResources.YES); yesButton.setFocus(); return true; } -- 2.7.4