+ targetDir);\r
return false;\r
}\r
-\r
+ \r
mConfig.setTargetDir(targetDir);\r
mConfig.setSdkDatatDir(Registry.sdkDataPath);\r
\r
// download complete.\r
if (monitor != null) {\r
monitor.workedDownloadProgress("Download complete", 0);\r
+ monitor.downloadDone();\r
}\r
\r
// install thread is running yet.\r
// install complete\r
if (monitor != null) {\r
monitor.workedInstallProgress("Installation complete", 0);\r
+ monitor.installDone();\r
}\r
\r
// save config file\r
if (installBuffer.size() <= 0) {\r
if (monitor != null ) {\r
monitor.workedInstallProgress("Waiting for download", 0);\r
+ monitor.installEnd();\r
}\r
}\r
}\r
return bResult;\r
}\r
\r
- private String getDownloadTargetPath(Package pkg) {\r
+ public String getDownloadTargetPath(Package pkg) {\r
String repository = pkg.getBaseURL().toString();\r
\r
String encodeRepository = null;\r
*/\r
public boolean removePackage(Package pkg, IIMProgressMonitor monitor) {\r
Log.log("InstallManager package remove start => " + pkg);\r
-\r
+ \r
if (pkg == null) {\r
return false;\r
}\r
+ \r
+ if (monitor != null) {\r
+ monitor.workedTitle(pkg.getPackageName());\r
+ }\r
\r
if (Options.doRemoveNoUI || Options.doInstallNoUI) {\r
System.out.println(pkg.getPackageName() + " is uninstalling...");\r
private void removeAllPackages(IIMProgressMonitor monitor) {\r
Log.log("Remove all packages.");\r
\r
- if (monitor != null) {\r
- monitor.workedTitle(REMOVE_ALL_PACKAGES);\r
- }\r
-\r
PackageSet removablePackages = packageManager.getInstalledPackages();\r
\r
for (Package pkg : removablePackages) {\r
\r
private long unZipPackage(Package pkg, String tempDir,\r
IIMProgressMonitor monitor) {\r
- String filePath = PathUtil.get(Config.getInstance().getDownloadPkgPath(), pkg.getFileName());\r
-\r
+ String filePath = InstallManager.getInstance().getDownloadTargetPath(pkg);\r
+ \r
File pkgFile = new File(filePath);\r
if (!pkgFile.exists()) {\r
Log.err(filePath + " doesn't exist");\r
throw new IMNetworkDownloadException(ErrorCode.INTERNET_CONNECTION_ERROR);\r
}\r
}\r
+ \r
+ if (writeSizePerSecond > 0 && monitor != null) {\r
+ monitor.workedDownloadSize(writeSizePerSecond);\r
+ }\r
} catch (SocketTimeoutException e) {\r
Log.ExceptionLog(e);\r
ErrorController.setError(ErrorCode.SERVER_CONNECTION_TIME_OUT);\r
*/\r
public void workedDownloadProgress(String fileName, int progressNumber);\r
public void workedDownloadSize(long size);\r
+ public void revertDownloadSize(long size);\r
+ public void downloadDone();\r
\r
/**\r
* Display install progress.\r
* @param progressNumber\r
*/\r
public void workedInstallProgress(String fileName, int progressNumber);\r
- void workedInstallSize(long size);\r
+ public void workedInstallSize(long size);\r
+ public void installDone();\r
\r
/**\r
* Refresh worked size.\r
*/\r
public void workedRefresh();\r
-\r
public void setError(int errorCode);\r
}\r
window.setCancelBtnEnabled(true);
window.showComposite(completePage);
completePage.setTitle("Installation Error");
- completePage.setCustomErrorMessage(message);
+ completePage.setCustomErrorMessage(message, SWT.CENTER);
}
});
// private StackLayout sl_composite = new StackLayout();
public StackLayout sl_composite = new StackLayout();
- private static Button btnTest;
private static Button btnClose;
private static Button btnBack;
private static Button btnNext;
- private AddExtraRepositoryDialog extraDialog = null;
-
private Composite pageComposite; // Page area
private WelcomePage compositeWelcomePage;
private LicensePage compositeLicensePage;
private InstallableListPage compositeInstallableListPage;
- private UninstallableListPage compositeUninstallablePage;
+ private UninstallableListPage compositeUninstallableListPage;
private InstallingPage compositeInstallingPage;
private UninstallingPage compositeUninstallingPage;
private CompletePage compositeCompletePage;
compositeInstallingPage = new InstallingPage(pageComposite, SWT.NONE);
compositeInstallableListPage = new InstallableListPage(pageComposite, SWT.NONE);
compositeUninstallingPage = new UninstallingPage(pageComposite, SWT.NONE);
- compositeUninstallablePage = new UninstallableListPage(pageComposite, SWT.NONE);
+ compositeUninstallableListPage = new UninstallableListPage(pageComposite, SWT.NONE);
compositeSetInstallDirectoryPage = new SetInstallDirectoryPage(pageComposite, SWT.NONE);
compositeUpdatableListPage = new UpdatableListPage(pageComposite, SWT.NONE);
// registLicensePageListener();
- registCompletePageListener();
+// registCompletePageListener();
initWelcomePage();
}
if (!controller.isNewInstallation()) {// Update case
+ Config.status = Config.Status.UPDATE;
compositeUpdatableListPage.loadPage(controller);
btnBack.setVisible(true);
+ btnNext.setVisible(true);
showComposite(compositeUpdatableListPage);
if (controller.existRemovablePackage()) {
btnNext.setText("Install");
} else {
boolean hasItem = compositeInstallableListPage.loadPage(controller);
if (hasItem) {
+ Config.status = Config.Status.INSTALL;
showComposite(compositeInstallableListPage);
btnNext.setVisible(true);
btnNext.setEnabled(hasItem);
}
btnBack.setVisible(true);
} else if (compositeWelcomePage.getSelectedButton() == INSTALLMANAGER_ACTION.UNINSTALL) {
- int resultDialog = MessageBoxDlg.NO;
- resultDialog = MessageBoxDlg.showDlg(
- e.display.getActiveShell(),
- "Tizen SDK Install Manager",
- "Are you sure you want to remove the Tizen SDK?\n\nIf you click \"Yes\", the Tizen SDK is uninstalled.",
- DialogType.WARNING, false);
- if (resultDialog == MessageBoxDlg.YES) {
- showComposite(compositeUninstallingPage);
- btnBack.setVisible(false);
- btnNext.setVisible(false);
- btnClose.setEnabled(false);
-
- if (Config.isSupportMultiSDK()) {
- PackageManager.dispose();
- initInstallManager();
- }
-
- List<Item> items = compositeUninstallablePage.getItems();
- boolean result = compositeUninstallingPage.loadPage(getSelectedPackageNames(items) /* compositeInstallablePage.getCheckedPackageNames()*/,
- controller,
- window);
- if (!result) {
- showComposite(compositeWelcomePage);
- btnBack.setVisible(true);
- btnNext.setVisible(true);
- btnClose.setEnabled(true);
- }
- } else {
- return;
- }
+ showComposite(compositeUninstallableListPage);
+ btnNext.setVisible(true);
+ btnBack.setVisible(true);
+ btnNext.setText("Uninstall");
+ compositeUninstallableListPage.loadPage(controller);
+// int resultDialog = MessageBoxDlg.NO;
+// resultDialog = MessageBoxDlg.showDlg(
+// e.display.getActiveShell(),
+// "Tizen SDK Install Manager",
+// "Are you sure you want to remove the Tizen SDK?\n\nIf you click \"Yes\", the Tizen SDK is uninstalled.",
+// DialogType.WARNING, false);
+// if (resultDialog == MessageBoxDlg.YES) {
+// showComposite(compositeUninstallingPage);
+// btnBack.setVisible(false);
+// btnNext.setVisible(false);
+// btnClose.setEnabled(false);
+//
+// if (Config.isSupportMultiSDK()) {
+// PackageManager.dispose();
+// initInstallManager();
+// }
+//
+// List<Item> items = compositeUninstallablePage.getItems();
+// boolean result = compositeUninstallingPage.loadPage(getSelectedPackageNames(items) /* compositeInstallablePage.getCheckedPackageNames()*/,
+// controller,
+// window);
+// if (!result) {
+// showComposite(compositeWelcomePage);
+// btnBack.setVisible(true);
+// btnNext.setVisible(true);
+// btnClose.setEnabled(true);
+// }
+// } else {
+// return;
+// }
}
} else if (sl_composite.topControl == compositeInstallableListPage) {
// btnNext.setEnabled(compositeLicensePage.getAcceptButton().getSelection());
btnNext.setVisible(true);
btnClose.setEnabled(true);
}
- } else if (sl_composite.topControl == compositeUninstallablePage) {
+ } else if (sl_composite.topControl == compositeUninstallableListPage) {
showComposite(compositeUninstallingPage);
btnBack.setVisible(false);
btnNext.setVisible(false);
btnClose.setEnabled(false);
- List<Item> items = compositeUninstallablePage.getItems();
+ List<Item> items = compositeUninstallableListPage.getItems();
boolean result = compositeUninstallingPage.loadPage(getSelectedPackageNames(items) /* compositeInstallablePage.getCheckedPackageNames()*/,
controller,
window);
if (!result) {
- showComposite(compositeUninstallablePage);
+ showComposite(compositeUninstallableListPage);
btnBack.setVisible(true);
btnNext.setVisible(true);
btnClose.setEnabled(true);
btnBack.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- if (sl_composite.topControl == compositeLicensePage) {
+ if (sl_composite.topControl == compositeInstallableListPage
+ || sl_composite.topControl == compositeUpdatableListPage) {
+ compositeInstallableListPage.getItems().clear();
+ showComposite(compositeWelcomePage);
+// if (controller.existRemovablePackage()) {
+// btnBack.setVisible(false);
+// showComposite(compositeWelcomePage);
+// } else {
+// showComposite(compositeLicensePage);
+// }
+ btnNext.setEnabled(true);
+ btnNext.setText("Next");
+ } else if (sl_composite.topControl == compositeLicensePage) {
btnNext.setEnabled(true);
btnBack.setVisible(false);
btnNext.setFocus();
- showComposite(compositeWelcomePage);
- } else if (sl_composite.topControl == compositeInstallableListPage || sl_composite.topControl == compositeUpdatableListPage) {
- compositeInstallableListPage.getItems().clear();
- if (controller.existRemovablePackage()) {
- btnBack.setVisible(false);
- showComposite(compositeWelcomePage);
- } else {
- showComposite(compositeLicensePage);
+ if (compositeWelcomePage.getSelectedButton() == INSTALLMANAGER_ACTION.INSTALL) {
+ showComposite(compositeInstallableListPage);
+ btnNext.setText("Next");
+ btnBack.setVisible(true);
+ } else if (compositeWelcomePage.getSelectedButton() == INSTALLMANAGER_ACTION.UPDATE) {
+ showComposite(compositeUpdatableListPage);
+ btnNext.setText("Next");
+ btnBack.setVisible(true);
}
- btnNext.setEnabled(true);
- btnNext.setText("Next");
} else if (sl_composite.topControl == compositeSetInstallDirectoryPage) {
- showComposite(compositeInstallableListPage);
- btnNext.setText("Next");
+ showComposite(compositeLicensePage);
+ btnNext.setText("I agree");
btnNext.setEnabled(true);
- } else if (sl_composite.topControl == compositeUninstallablePage) {
+ } else if (sl_composite.topControl == compositeUninstallableListPage) {
showComposite(compositeWelcomePage);
btnNext.setText("Next");
btnNext.setEnabled(true);
btnClose.removeSelectionListener(cancelBtnSelectionAdapter);
btnClose.addSelectionListener(cancelBtnSelectionAdapter);
-// compositeWelcomePage.setButtonStatus();
+ compositeWelcomePage.setButtonStatus();
} else {
compositeWelcomePage.setVisibleRadioButton(false);
btnNext.setVisible(false);
}
btnNext.setFocus();
sl_composite.topControl = compositeWelcomePage;
+// sl_composite.topControl = compositeUninstallingPage;
}
/**
Image sourceImage = null;
Image hoverImage = null;
boolean selected_flag = false;
+ boolean enabled_flag = false;
public IMButton(Composite parent, int style) {
super(parent, style);
}
public void setBounds(int x, int y, int width, int height) {
- setBounds(x, y, width, height);
+ super.setBounds(x, y, width, height);
}
public void setImage(String sourceImagePath){
return selected_flag;
}
+ public void setEnabledFlag(boolean enabled) {
+ this.enabled_flag = enabled;
+ }
+
+ public boolean getEnabledFlag() {
+ return enabled_flag;
+ }
+
private void init(){
this.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
+import org.tizen.installmanager.core.Config;
+import org.tizen.installmanager.ui.model.Item.InstallState;
/**
* an interface to content providers for tree-structure-oriented viewers.
@Override
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof Item) {
- return ((Item) parentElement).getChildren().toArray();
+ ArrayList<Item> children = new ArrayList<Item>();
+ if (Config.status == Config.Status.UNINSTALL) {
+ for (Item it : ((Item) parentElement).getChildren()) {
+ if (it.getInstallState() == InstallState.UNINSTALL) {
+ children.add(it);
+ }
+ }
+ } else {
+ children = ((Item) parentElement).getChildren();
+ }
+ return children.toArray();
} else {
return null;
}
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.tizen.installmanager.ui.InstallManagerWindow;
import org.tizen.installmanager.ui.dialog.MessageBoxDlg;
import org.tizen.installmanager.ui.dialog.MessageBoxDlg.DialogType;
+import org.tizen.installmanager.ui.page.InstallPage.CIRCULAR_TYPE;
import org.tizen.installmanager.util.PathUtil;
/**
* Complete Page class
* @author Taeyoung Son <taeyoung2.son@samsung.com>
*/
-public class CompletePage extends PageTemplate {
- public static final String RSC_PATH_INSTALL_IMAGE = RESOURCE_PATH + "/install_manager_graphicmotif_004.png";
- public static final String RSC_PATH_UNINSTALL_IMAGE = RESOURCE_PATH + "/uninstaller_graphicmotif_003.png";
- public static final String STRING_TITLE = "Installation Completed";
- private Label lblNewLabel;
- private Label lblInfo;
- public Button checkBtn;
+public class CompletePage extends InstallPage {
+// public static final String RSC_PATH_INSTALL_IMAGE = RESOURCE_PATH + "/install_manager_graphicmotif_004.png";
+// public static final String RSC_PATH_UNINSTALL_IMAGE = RESOURCE_PATH + "/uninstaller_graphicmotif_003.png";
+ public static final String RSC_PATH_IMAGE_NEW = RESOURCE_PATH_NEW + "/08_complete_installation_bg.png";
+ public static final String STRING_TITLE = "Completed installation.";
+ private Label completeMessageLabel;
+ private Label informationLabel;
+ public Button releaseNoteButton;
private StyledText errorText;
*/
public CompletePage(Composite parent, int style) {
super(parent, style, true);
- setLeftImageFromResource(RSC_PATH_INSTALL_IMAGE);
- setTitle(STRING_TITLE);
+ setLeftImageFromResource(RSC_PATH_IMAGE_NEW);
+
+ disableTitleBounds();
+ disableSubtitleBounds();
+
+ setTitleLabelText(STRING_TITLE);
+ setProgressCircle(customComposite, CIRCULAR_TYPE.CUSTOM);
+ setCircularCenterImage(PathUtil.getImageFromResource(RSC_PROGRESS_IMAGE_START));
+ getCircularGraph().setGraphBgColor(PROGRESS_CIRCLE_COLOR);
- setCustomLabel();
+ setCompleteMessageLabel();
setInfoLabel();
setErrorText();
setCheckButton();
public void loadPage() {
}
- private void setCheckButton() {
- checkBtn = new Button(customComposite, SWT.CHECK);
- checkBtn.setBackground(InstallManagerWindow.getBackgroundColor());
- checkBtn.setText("Show Release Note.");
- checkBtn.setLocation(10, 150);
- checkBtn.pack();
- // If JDK does not support to DeskTop class, InstallManager cannot show release note.
- checkBtn.setSelection(Desktop.isDesktopSupported());
- checkBtn.setEnabled(Desktop.isDesktopSupported());
- }
-
- private void setCustomLabel() {
- lblNewLabel = new Label(customComposite, SWT.WRAP);
- lblNewLabel.setBounds(10, 0, 400, 70);
- lblNewLabel.setText("");
- lblNewLabel.setBackground(InstallManagerWindow.getBackgroundColor());
+ private void setCompleteMessageLabel() {
+ completeMessageLabel = new Label(customComposite, SWT.WRAP);
+ completeMessageLabel.setBounds(100, 133, 450, 45);
+// completeMessageLabel.setAlignment(SWT.LEFT);
+ completeMessageLabel.setText("");
+// completeMessageLabel.setBackground(InstallManagerWindow.getBackgroundColor());
+ completeMessageLabel.setBackground(new Color(null, new RGB(191, 139, 41)));
}
private void setInfoLabel() {
- lblInfo = new Label(customComposite, SWT.WRAP);
- lblInfo.setBounds(10, 70, 400, 70);
- lblInfo.setText("");
- lblInfo.setBackground(InstallManagerWindow.getBackgroundColor());
+ informationLabel = new Label(customComposite, SWT.WRAP);
+ informationLabel.setBounds(100, 183, 450, 50);
+// informationLabel.setAlignment(SWT.LEFT);
+ informationLabel.setText("");
+ informationLabel.setBackground(InstallManagerWindow.getBackgroundColor());
if (Platform.isUbuntu()) {
- lblInfo.setFont((new Font(Display.getCurrent(), new FontData("Dejavu Sans", 9, SWT.BOLD))));
+ informationLabel.setFont((new Font(Display.getCurrent(), new FontData("Dejavu Sans", 9, SWT.BOLD))));
} else if (Platform.isWindows()) {
- lblInfo.setFont((new Font(Display.getCurrent(), new FontData("Verdana", 9, SWT.BOLD))));
+ informationLabel.setFont((new Font(Display.getCurrent(), new FontData("Verdana", 9, SWT.BOLD))));
} else {
- lblInfo.setFont((new Font(Display.getCurrent(), new FontData("Lucida Grande", 12, SWT.BOLD))));
+ informationLabel.setFont((new Font(Display.getCurrent(), new FontData("Lucida Grande", 12, SWT.BOLD))));
}
}
+ private void setCheckButton() {
+ releaseNoteButton = new Button(customComposite, SWT.CHECK);
+ releaseNoteButton.setBackground(InstallManagerWindow.getBackgroundColor());
+ releaseNoteButton.setText("Show Release Note.");
+ releaseNoteButton.setBounds(243, 245, 122, 26);
+ releaseNoteButton.pack();
+ // If JDK does not support to DeskTop class, InstallManager cannot show release note.
+// releaseNoteButton.setVisible(Desktop.isDesktopSupported());
+// releaseNoteButton.setSelection(Desktop.isDesktopSupported());
+ }
+
private void setErrorText() {
errorText = new StyledText(customComposite, SWT.WRAP);
- errorText.setBounds(10, 173, 400, 100);
+ errorText.setBounds(10, 235, 608, 100);
+ errorText.setAlignment(SWT.CENTER);
errorText.setText("");
- errorText.setBackground(InstallManagerWindow.getBackgroundColor());
- errorText.setVisible(!Desktop.isDesktopSupported());
+// errorText.setBackground(InstallManagerWindow.getBackgroundColor());
+ errorText.setBackground(new Color(null, new RGB(191, 139, 41)));
+ errorText.setVisible(Desktop.isDesktopSupported());
+ }
+
+ public void setErrorTextMsg() {
+ errorText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_RED));
+ errorText.setText("Your system does not support to show the release note.\n" +
+ " Please refer to the following URL.\n");
+ String tmp = Config.getInstance().getReleaseNoteUrl();
+ errorText.append(Config.getInstance().getReleaseNoteUrl());
}
/**
* @return check button object
*/
public Button getChkBtn() {
- return checkBtn;
+ return releaseNoteButton;
}
/**
* @param bStatus
*/
public void showCheckButton(boolean bStatus) {
- checkBtn.setSelection(false);
- checkBtn.setVisible(bStatus);
+ releaseNoteButton.setSelection(false);
+ releaseNoteButton.setVisible(bStatus);
}
/**
* Show message on complete page.
* @param completeMsg
*/
- public void setCustomMessage(String completeMsg) {
- lblNewLabel.setText(completeMsg);
+// public void setCustomMessage(String completeMsg) {
+// completeMessageLabel.setText(completeMsg);
+// }
+
+ public void setCustomMessage(String completeMsg, int style) {
+ completeMessageLabel.setText(completeMsg);
+ completeMessageLabel.setAlignment(style);
}
- public void setInfoMessage(String infoMsg) {
- String msg = lblInfo.getText();
+ public void setInfoMessage(String infoMsg, int style) {
+ String msg = informationLabel.getText();
msg = msg + "Information : \n" + infoMsg;
- lblInfo.setText(msg);
+ informationLabel.setText(msg);
+ informationLabel.setAlignment(style);
}
public void removeTargetDir() {
* Show error message on complete page.
* @param errorMsg
*/
- public void setCustomErrorMessage(String errorMsg) {
- lblNewLabel.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_RED));
- lblNewLabel.setText(errorMsg);
- }
-
- public void setErrorTextMsg() {
- errorText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_RED));
- errorText.setText("Your system does not support to show the release note.\n" +
- " Please refer to the following URL.\n");
- errorText.append(Config.getInstance().getReleaseNoteUrl());
+ public void setCustomErrorMessage(String errorMsg, int style) {
+ completeMessageLabel.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_RED));
+ completeMessageLabel.setText(errorMsg);
+ completeMessageLabel.setAlignment(style);
}
+
}
static final String RSC_PROGRESS_IMAGE_START = RESOURCE_PATH_NEW + "/progress_start.png";
static final String RSC_PROGRESS_IMAGE_CENTER = RESOURCE_PATH_NEW + "/progress_center.png";
static final String RSC_PROGRESS_IMAGE_BACKGROUND = RESOURCE_PATH_NEW + "/progress_center_bg.png";
- static final Color PROGRESS_CIRCLE_BACKGROUND = new Color(null, new RGB(189, 189, 189)); // light gray
+ static final Color PROGRESS_CIRCLE_BACKGROUND_COLOR = new Color(null, new RGB(189, 189, 189)); // light gray
static final Color PROGRESS_CIRCLE_COLOR = new Color(null, new RGB(131, 196, 218)); // light blue
- static final Color PROGRESS_CIRCLE_CENTER = new Color(null, new RGB(255, 255, 255)); // white
+ static final Color PROGRESS_CIRCLE_CENTER_COLOR = new Color(null, new RGB(255, 255, 255)); // white
protected Label titleLabel;
- private IMCircularGraph progressGrapgh;
+ private IMCircularGraph progressGraph;
// private int circularType = 0; // 0 is percentage, 1 is custom.
protected enum CIRCULAR_TYPE { PERCENTAGE, CUSTOM };
// progressGrapgh.setLayout(new FillLayout());
if (circularType == CIRCULAR_TYPE.PERCENTAGE) {
- progressGrapgh = new IMCircularGraph(composite, SWT.NONE, IMCircularGraph.TYPE_PERCENT);
+ progressGraph = new IMCircularGraph(composite, SWT.NONE, IMCircularGraph.TYPE_PERCENT);
} else if (circularType == CIRCULAR_TYPE.CUSTOM) {
- progressGrapgh = new IMCircularGraph(composite, SWT.NONE, IMCircularGraph.TYPE_CUSTOM);
- progressGrapgh.setCanvasColor(new Color(null, new RGB(34, 116, 28)));
- progressGrapgh.setGraphBgColor(PROGRESS_CIRCLE_BACKGROUND);
- progressGrapgh.setBounds(275, 42, 78, 78);
- progressGrapgh.setCenterColor(PROGRESS_CIRCLE_CENTER);
+ progressGraph = new IMCircularGraph(composite, SWT.NONE, IMCircularGraph.TYPE_CUSTOM);
} else {
Log.err("Unsupported circular style.");
throw new IMFatalException("Unsupported circular style.");
}
+
+// progressGraph.setCanvasColor(new Color(null, new RGB(34, 116, 28)));
+ progressGraph.setCanvasColor(InstallManagerWindow.getBackgroundColor());
+ progressGraph.setGraphBgColor(PROGRESS_CIRCLE_BACKGROUND_COLOR);
+ progressGraph.setBounds(275, 42, 78, 78);
+ progressGraph.setCenterColor(PROGRESS_CIRCLE_CENTER_COLOR);
+ progressGraph.setGraphColor(PROGRESS_CIRCLE_COLOR);
+
+
// progressGrapgh.setCenterImage(PathUtil.getImageFromResource(RSC_PROGRESS_IMAGE_START));
// progressGrapgh.setBackground(InstallManagerWindow.getBackgroundColor());
}
protected void setCircularCenterImage(Image image) {
- progressGrapgh.setCenterImage(image);
+ progressGraph.setCenterImage(image);
+ }
+
+ protected IMCircularGraph getCircularGraph() {
+ return progressGraph;
}
}
private Button nativeMinimalButton;
private Button addExtraButton;
- private AddExtraRepositoryDialog extraDialog = null;
+ private AddExtraRepositoryDialog extraDialog;
/**
* @param parent
disableTitleBounds();
disableSubtitleBounds();
+ setTitleLabelText(STRING_TITLE);
+
buttonComposite = new Composite(getCustomComposite(), SWT.NONE);
// buttonComposite.setSize(10, 60);
* Set Install Type radio buttons.
*/
private void setButtons() {
- setTitleLabelText(STRING_TITLE);
setTypicalButton();
setMinimalButton();
setCustomButton();
public void widgetSelected(SelectionEvent e) {
extraDialog = new AddExtraRepositoryDialog(buttonComposite.getShell(), viewController);
extraDialog.open();
-
-// if (sl_composite.topControl == compositeComponentSelectionPage) {
-// compositeComponentSelectionPage.loadPage(controller);
-// } else if (sl_composite.topControl == compositeUpdatableListPage) {
-// compositeUpdatableListPage.loadPage(controller);
-// }
+ loadPage(InstallManagerWindow.getInstallManagerWindow().getViewController());
}
});
}
*/
private void refreshByType(InstallType instType) {
String iType = null;
-
+
if (instType == InstallType.TYPICAL) {
iType = TYPICAL_PACKAGE_NAME;
} else if (instType == InstallType.MINIMAL) {
try {
if (Config.isSupportMultiSDK()) {
- loadPackagesToTreeViewer(viewController.getAllMetaPackages());
+ loadPackagesToTreeViewer(viewController.getAllMetaPackages(), Type.INSTALL);
} else {
- loadPackagesToTreeViewer(viewController.getInstallableMetaPackageList());
+ loadPackagesToTreeViewer(viewController.getInstallableMetaPackageList(), Type.INSTALL);
}
viewController.loadSdkExtension();
addExtensionPackagesToExtra(viewController.getRootMetaPackageListOfExtension());
import java.util.List;\r
\r
import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.SelectionAdapter;\r
+import org.eclipse.swt.events.SelectionEvent;\r
import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.graphics.RGB;\r
+import org.eclipse.swt.widgets.Button;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.swt.widgets.Display;\r
+import org.eclipse.swt.widgets.Event;\r
import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.ProgressBar;\r
import org.tizen.installmanager.core.Config;\r
import org.tizen.installmanager.core.IMExitException;\r
import org.tizen.installmanager.core.IMFatalException;\r
import org.tizen.installmanager.ui.InstallManagerWindow;\r
import org.tizen.installmanager.ui.dialog.MessageBoxDlg;\r
import org.tizen.installmanager.ui.dialog.MessageBoxDlg.DialogType;\r
+import org.tizen.installmanager.ui.lib.IMCircularGraph;\r
\r
/**\r
- * @author Taeyoung Son <taeyoung2.son@samsung.com>\r
+ * @author Yongsung Kim <yongsung1.kim@samsung.com>\r
* \r
*/\r
public class InstallingPage extends InstallPage {\r
static final int DAY = HOUR * 24;\r
\r
private List<String> selectedList;\r
- private ProgressBar downloadProgressBar;\r
- private Label downloadProgressTitleLabel;\r
+ private Label downloadCurrentSizeLabel;\r
+ private Label downloadTotalSizeLabel;\r
private Label downloadFileNameLabel;\r
- private Label downloadProgressLabel;\r
private Label downloadSpeedLabel;\r
\r
- private ProgressBar installProgressBar;\r
- private Label installProgressTitleLabel;\r
private Label installFileNameLabel;\r
- private Label installProgressLabel;\r
- private Label installRemainingTimeLabel;\r
+ private Label remainingTimeLabel;\r
+ private Label remainingTimeTitleLabel;\r
+ \r
+ private Button detailOpenButton;\r
+ private Button detailCloseButton;\r
+ private Label detailLabel;\r
\r
private ViewController viewController;\r
private String installPath;\r
private InstallProgressMonitor monitor;\r
private InstallManagerWindow mainWindow;\r
Display display;\r
-\r
+ \r
/**\r
* Set basic environment of installing page.\r
* \r
disableSubtitleBounds();\r
\r
setTitleLabelText(STRING_TITLE);\r
-\r
-// setLeftImageFromResource(RSC_PATH_IMAGE);\r
-// setTitle(STRING_TITLE);\r
-// setSubTitle(STRING_SUBTITLE);\r
-\r
- // download progress bar\r
- downloadProgressBar = new ProgressBar(customComposite, SWT.NONE);\r
- downloadProgressBar.setBounds(30, 93, 406, 20);\r
-\r
- downloadProgressTitleLabel = new Label(customComposite, SWT.NONE);\r
- downloadProgressTitleLabel.setBounds(30, 65, 240, 23);\r
- downloadProgressTitleLabel.setBackground(InstallManagerWindow\r
- .getBackgroundColor());\r
-\r
- downloadProgressLabel = new Label(customComposite, SWT.NONE);\r
- downloadProgressLabel.setAlignment(SWT.RIGHT);\r
- downloadProgressLabel.setBounds(315, 65, 80, 23);\r
- downloadProgressLabel.setForeground(new Color(null, 0, 108, 209));\r
- downloadProgressLabel.setText("");\r
-\r
+ setProgressCircle(customComposite, CIRCULAR_TYPE.PERCENTAGE);\r
+ setDownloadCurrentSizeLabel();\r
+ setDownloadTotalSizeLabel();\r
+ setDownloadSpeedLabel();\r
+ setRemainingTimeTitleLabel();\r
+ setRemainingTimeLabel();\r
+ setDownloadFileNameLabel();\r
+ setInstallFileNameLabel();\r
+ setDetailOpenButton(); // to do later\r
+ setDetailCloseButton(); // to do later\r
+ setDetailLabel(); // to do later\r
+ }\r
+ \r
+ private void setDownloadCurrentSizeLabel() {\r
+ downloadCurrentSizeLabel = new Label(customComposite, SWT.NONE);\r
+ downloadCurrentSizeLabel.setAlignment(SWT.RIGHT);\r
+ downloadCurrentSizeLabel.setBounds(100, 133, 90, 20);\r
+ downloadCurrentSizeLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// downloadCurrentSizeLabel.setBackground(new Color(null, new RGB(34, 76, 48)));\r
+ }\r
+ \r
+ private void setDownloadTotalSizeLabel() {\r
+ downloadTotalSizeLabel = new Label(customComposite, SWT.NONE);\r
+ downloadTotalSizeLabel.setAlignment(SWT.LEFT);\r
+ downloadTotalSizeLabel.setBounds(190, 133, 60, 20);\r
+ downloadTotalSizeLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// downloadTotalSizeLabel.setBackground(new Color(null, new RGB(67, 32, 48)));\r
+ downloadTotalSizeLabel.setForeground(PROGRESS_CIRCLE_BACKGROUND_COLOR);\r
+ }\r
+ \r
+ private void setDownloadSpeedLabel() {\r
+ downloadSpeedLabel = new Label(customComposite, SWT.NONE);\r
+ downloadSpeedLabel.setAlignment(SWT.LEFT);\r
+ downloadSpeedLabel.setBounds(250, 133, 80, 20);\r
+ downloadSpeedLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// downloadSpeedLabel.setBackground(new Color(null, new RGB(34, 76, 48)));\r
+ downloadSpeedLabel.setForeground(PROGRESS_CIRCLE_BACKGROUND_COLOR);\r
+// downloadSpeedLabel.setText("Download speed");\r
+ }\r
+ \r
+ private void setRemainingTimeTitleLabel() {\r
+ remainingTimeTitleLabel = new Label(customComposite, SWT.NONE);\r
+ remainingTimeTitleLabel.setAlignment(SWT.RIGHT);\r
+ remainingTimeTitleLabel.setBounds(330, 133, 120, 20);\r
+ remainingTimeTitleLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// remainingTimeTitleLabel.setBackground(new Color(null, new RGB(17, 136, 128)));\r
+ remainingTimeTitleLabel.setText("Remaining time");\r
+ }\r
+ \r
+ private void setRemainingTimeLabel() {\r
+ remainingTimeLabel = new Label(customComposite, SWT.NONE);\r
+ remainingTimeLabel.setAlignment(SWT.RIGHT);\r
+ remainingTimeLabel.setBounds(450, 133, 100, 20);\r
+ remainingTimeLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// remainingTimeLabel.setBackground(new Color(null, new RGB(97, 16, 128)));\r
+ remainingTimeLabel.setForeground(PROGRESS_CIRCLE_BACKGROUND_COLOR);\r
+ remainingTimeLabel.setText("time estimating...");\r
+ }\r
+ \r
+ private void setDownloadFileNameLabel() {\r
downloadFileNameLabel = new Label(customComposite, SWT.NONE);\r
- downloadFileNameLabel.setBounds(30, 121, 260, 23);\r
- downloadFileNameLabel.setForeground(new Color(null, 96, 96, 96));\r
- downloadFileNameLabel.setBackground(InstallManagerWindow\r
- .getBackgroundColor());\r
+ downloadFileNameLabel.setAlignment(SWT.CENTER);\r
+ downloadFileNameLabel.setBounds(0, 169, 628, 20);\r
+ downloadFileNameLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+ downloadFileNameLabel.setForeground(PROGRESS_CIRCLE_BACKGROUND_COLOR);\r
downloadFileNameLabel.setText("download file name");\r
-\r
- downloadSpeedLabel = new Label(customComposite, SWT.NONE);\r
- downloadSpeedLabel.setAlignment(SWT.RIGHT);\r
- downloadSpeedLabel.setBounds(295, 121, 120, 23);\r
- downloadSpeedLabel.setBackground(InstallManagerWindow\r
- .getBackgroundColor());\r
- downloadSpeedLabel.setForeground(new Color(null, 0, 108, 209));\r
- downloadSpeedLabel.setText("Download speed");\r
-\r
- // install progress bar\r
- installProgressBar = new ProgressBar(customComposite, SWT.NONE);\r
- installProgressBar.setBounds(30, 190, 406, 20);\r
-\r
- installProgressTitleLabel = new Label(customComposite, SWT.NONE);\r
- installProgressTitleLabel.setBounds(30, 162, 240, 23);\r
- installProgressTitleLabel.setBackground(InstallManagerWindow\r
- .getBackgroundColor());\r
-\r
- installProgressLabel = new Label(customComposite, SWT.NONE);\r
- installProgressLabel.setAlignment(SWT.RIGHT);\r
- installProgressLabel.setBounds(315, 162, 80, 23);\r
- installProgressLabel.setForeground(new Color(null, 0, 108, 209));\r
- installProgressLabel.setText("");\r
-\r
+ }\r
+ \r
+ private void setInstallFileNameLabel() {\r
installFileNameLabel = new Label(customComposite, SWT.NONE);\r
- installFileNameLabel.setBounds(30, 218, 260, 23);\r
+ installFileNameLabel.setAlignment(SWT.CENTER);\r
+ installFileNameLabel.setBounds(0, 189, 628, 20);\r
installFileNameLabel.setForeground(new Color(null, 96, 96, 96));\r
- installFileNameLabel.setBackground(InstallManagerWindow\r
- .getBackgroundColor());\r
+ installFileNameLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
installFileNameLabel.setText("install file name");\r
-\r
- installRemainingTimeLabel = new Label(customComposite, SWT.NONE);\r
- installRemainingTimeLabel.setAlignment(SWT.RIGHT);\r
- installRemainingTimeLabel.setBounds(295, 218, 120, 23);\r
- installRemainingTimeLabel.setBackground(InstallManagerWindow\r
- .getBackgroundColor());\r
- installRemainingTimeLabel.setForeground(new Color(null, 0, 108, 209));\r
- installRemainingTimeLabel.setText("Remaining time");\r
}\r
\r
-// private void setRequiredSpaceLabel() {\r
-// spaceRequiredLabel = new Label(customComposite, SWT.CENTER);\r
-// spaceRequiredLabel.setBounds(10, 133, 628, 20);\r
-// spaceRequiredLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
-// }\r
+ private void setDetailOpenButton() {\r
+ detailOpenButton = new Button(customComposite, SWT.PUSH);\r
+ detailOpenButton.setAlignment(SWT.CENTER);\r
+ detailOpenButton.setBounds(253, 210, 122, 26);\r
+ detailOpenButton.setText("Show Detail");\r
+ \r
+ detailOpenButton.addSelectionListener(new SelectionAdapter() {\r
+ @Override\r
+ public void widgetSelected(SelectionEvent arg0) {\r
+ System.out.println("Detail button is pushed.");\r
+ downloadFileNameLabel.setVisible(false);\r
+ installFileNameLabel.setVisible(false);\r
+ detailOpenButton.setVisible(false);\r
+ detailCloseButton.setVisible(true);\r
+ detailLabel.setVisible(true);\r
+ }\r
+ });\r
+ }\r
+ \r
+ private void setDetailCloseButton() {\r
+ detailCloseButton = new Button(customComposite, SWT.PUSH);\r
+ detailCloseButton.setAlignment(SWT.CENTER);\r
+ detailCloseButton.setBounds(496, 170, 122, 26);\r
+ detailCloseButton.setText("Close");\r
+ \r
+ detailCloseButton.addSelectionListener(new SelectionAdapter() {\r
+ @Override\r
+ public void widgetSelected(SelectionEvent arg0) {\r
+ System.out.println("close button is pushed.");\r
+ downloadFileNameLabel.setVisible(true);\r
+ installFileNameLabel.setVisible(true);\r
+ detailOpenButton.setVisible(true);\r
+ detailCloseButton.setVisible(false);\r
+ detailLabel.setVisible(false);\r
+ }\r
+ });\r
+ }\r
+ \r
+ private void setDetailLabel() {\r
+ detailLabel = new Label(customComposite, SWT.NONE);\r
+ detailLabel.setAlignment(SWT.LEFT);\r
+ detailLabel.setBounds(10, 197, 608, 97);\r
+ detailLabel.setVisible(false);\r
+ }\r
\r
/**\r
* First of all this function check package whether update or not and check\r
}\r
}\r
\r
-// new InstallThread(monitor).start();\r
+ new InstallThread(monitor).start();\r
\r
return true;\r
}\r
boolean bResult = false;\r
\r
try {\r
- bResult = viewController\r
- .install(selectedList, installPath, monitor);\r
+ bResult = viewController.install(selectedList, installPath, monitor);\r
// ErrorController.setError(ErrorCode.INSTALLATION_FAIL);\r
} catch (IMInstallCancelException e) {\r
bResult = false;\r
private boolean cancelRequested;\r
\r
private double totalDownloadSize = 0;\r
+ private int percentageOfDownloadProgress = 0;\r
+ private double downloadRemainTime = 0;\r
+ \r
private double totalInstallSize = 0;\r
+ private double installRemainTime = 0;\r
+ private int percentageOfInstallProgress = 0;\r
+ private double totalPastTime = 0;\r
\r
private static final String PATTERN = ".00";\r
private DecimalFormat dformat = new DecimalFormat(PATTERN);\r
+ \r
+ private IMCircularGraph circularGraph = getCircularGraph();\r
\r
@Override\r
public void beginTask(String title, int totalWork) {\r
}\r
}\r
\r
- public void beginTask(int totalWork, long totalDownloadSize,\r
- long totalInstallSize) {\r
+ public void beginTask(int totalWork, long totalDownloadSize, long totalInstallSize) {\r
if (display == null || display.isDisposed()) {\r
setCanceled(true);\r
return;\r
@Override\r
public void run() {\r
// initialize the download\r
- downloadProgressTitleLabel\r
- .setText("Downloading the sdk packages");\r
downloadFileNameLabel.setText("Preparing the download");\r
\r
//initialize the installation\r
- installProgressTitleLabel.setText("Installing the sdk packages");\r
installFileNameLabel.setText("Waiting for download");\r
}\r
});\r
if (Config.status == Config.Status.INSTALL) {\r
Registry.saveSDKInfo(installPath);\r
}\r
-\r
+ \r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- downloadProgressBar.setSelection(100);\r
- installProgressBar.setSelection(100);\r
+ circularGraph.update(100);\r
\r
CompletePage completePage = mainWindow.getCompletePage();\r
\r
if (ErrorController.checkInstallationSuccess()) {\r
- completePage.setTitle("Installation Completed");\r
+ completePage.setTitleLabelText("Installation Completed");\r
\r
String customMessage = "";\r
\r
if (Platform.isUbuntu()) {\r
if (viewController.isUnityEnvironment()) {\r
- customMessage = "Thank you for installing the Tizen SDK. \n\n"\r
- + "To use the SDK, search and select 'Tizen IDE' on your unity dash. ";\r
+ customMessage = "Thank you for installing the Tizen SDK. \n"\r
+ + "To use the SDK, search and select 'Tizen IDE' on your unity dash.";\r
} else {\r
- customMessage = "Thank you for installing the Tizen SDK. \n\n"\r
- + "To use the SDK, go to Application > Tizen SDK > Tizen IDE. ";\r
+ customMessage = "Thank you for installing the Tizen SDK. \n"\r
+ + "To use the SDK, go to Application > Tizen SDK > Tizen IDE.";\r
}\r
} else if (Platform.isWindows()) {\r
- customMessage = "Thank you for installing the Tizen SDK. "\r
- + "To use the SDK, go to Start > All Programs > Tizen SDK > Tizen IDE. \n\n";\r
+ customMessage = "Thank you for installing the Tizen SDK. \n"\r
+ + "To use the SDK, go to Start > All Programs > Tizen SDK > Tizen IDE.";\r
} else {\r
customMessage = "Thank you for installing the Tizen SDK. ";\r
}\r
\r
- completePage.setCustomMessage(customMessage);\r
+ completePage.setCustomMessage(customMessage, SWT.LEFT);\r
completePage.setErrorTextMsg();\r
\r
// if (ErrorController.existInfoMessage()) {\r
- completePage\r
- .setInfoMessage(InfoCode.RESTART_THE_COMPUTER\r
- .getInfoMessage()/*\r
- * ErrorController.\r
- * getInfoMessage()\r
- */);\r
+ completePage.setInfoMessage(InfoCode.RESTART_THE_COMPUTER.getInfoMessage()\r
+ /*ErrorController.getInfoMessage()*/, SWT.RIGHT);\r
// }\r
\r
Log.log("installation complete");\r
} else {\r
Log.log("(un)installation failed");\r
- completePage.setTitle("(Un)Installation failed");\r
- completePage.setCustomErrorMessage(ErrorController\r
- .getErrorMessage() + "\n");\r
+ completePage.setTitleLabelText("(Un)Installation failed");\r
+ ErrorController.setErrorMessage("Test error");\r
+// completePage.setCustomErrorMessage(ErrorController.getErrorMessage() + "\n", SWT.RIGHT);\r
+ completePage.setCustomErrorMessage(ErrorController.getErrorMessage(), SWT.RIGHT);\r
mainWindow.getCompletePage().showCheckButton(false);\r
}\r
\r
display.syncExec(new Runnable() {\r
@Override\r
public void run() {\r
- installProgressLabel.setText(downloadProgressWork + "/"\r
- + (totalWork));\r
- downloadProgressBar\r
- .setSelection(100 * ((int) downloadProgressWork / (int) totalWork));\r
+ \r
}\r
});\r
}\r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- downloadProgressLabel.setText(downloadProgressWork + "/"\r
- + (totalWork));\r
- downloadFileNameLabel.setText(getEtcString(fileName));\r
+ downloadFileNameLabel.setText("Downloading : " + getEtcString(fileName));\r
}\r
});\r
}\r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- /* set total size */\r
- String totalSize = "";\r
- if (totalDownloadSize >= GB_SIZE) {\r
- totalSize = dformat\r
- .format((totalDownloadSize / GB_SIZE)) + "GB";\r
- } else if (totalDownloadSize >= MB_SIZE) {\r
- totalSize = dformat\r
- .format((totalDownloadSize / MB_SIZE)) + "MB";\r
- } else {\r
- totalSize = totalDownloadSize + "KB";\r
- }\r
-\r
/* set current download size */\r
downloadProgressSize += size / (double) 1024;\r
- String currentSize = "";\r
- if (downloadProgressSize >= GB_SIZE) {\r
- currentSize = dformat\r
- .format((downloadProgressSize / GB_SIZE))\r
- + "GB";\r
- } else if (downloadProgressSize >= MB_SIZE) {\r
- currentSize = dformat\r
- .format((downloadProgressSize / MB_SIZE))\r
- + "MB";\r
- } else {\r
- currentSize = dformat.format(downloadProgressSize)\r
- + "KB";\r
- }\r
-\r
- // set size to progress bar.\r
-// downloadProgressBar.setToolTipText(currentSize + "/"\r
-// + totalSize);\r
\r
- long pastTimes = System.currentTimeMillis()\r
- - downloadStartTime;\r
-\r
- double downloadVelocity = 0;\r
+ long pastTimes = System.currentTimeMillis() - downloadStartTime;\r
\r
+ String remainTimeStr = "";\r
String downloadVelocityStr = "estimating...";\r
+ String downloadCurrentStr = "";\r
+ String downloadTotalStr = "";\r
+ \r
if (pastTimes > 5000) {\r
- downloadVelocity = downloadProgressSize\r
+ double downloadVelocity = downloadProgressSize\r
/ (double) (pastTimes / (double) 1000);\r
\r
- if (downloadVelocity >= GB_SIZE) {\r
- downloadVelocityStr = dformat\r
- .format(downloadVelocity / GB_SIZE)\r
- + "GB/s";\r
- } else if (downloadVelocity >= MB_SIZE) {\r
- downloadVelocityStr = dformat\r
- .format(downloadVelocity / MB_SIZE)\r
- + "MB/s";\r
- } else {\r
- downloadVelocityStr = dformat\r
- .format(downloadVelocity / KB_SIZE)\r
- + "KB/s";\r
+ downloadVelocityStr = divideSizeString(downloadVelocity) + "/s";\r
+ downloadCurrentStr = divideSizeString(downloadProgressSize) + " /";\r
+ downloadTotalStr = divideSizeString(totalDownloadSize);\r
+ \r
+ double remainSize = totalDownloadSize - downloadProgressSize;\r
+ downloadRemainTime = remainSize / downloadVelocity;\r
+ if (downloadRemainTime >= installRemainTime) {\r
+ \r
+// if (installVelocity != 0 && sizeOfLastDowloadPackage != 0) {\r
+// remainTime += sizeOfLastDowloadPackage / installVelocity;\r
+// }\r
+\r
+ int day = (int) (downloadRemainTime / DAY);\r
+ int hour = (int) ((downloadRemainTime % DAY) / HOUR);\r
+ int min = (int) ((downloadRemainTime % HOUR) / MIN);\r
+ int sec = (int) (downloadRemainTime % MIN);\r
+\r
+ if (day > 0) {\r
+ remainTimeStr = day + "day ";\r
+ }\r
+\r
+ if (hour > 0) {\r
+ remainTimeStr += hour + "hour ";\r
+ }\r
+\r
+ if (min > 0) {\r
+ remainTimeStr += min + "min ";\r
+ }\r
+\r
+ if (sec > 0) {\r
+ remainTimeStr += sec + "sec";\r
+ }\r
+ \r
+ remainingTimeLabel.setText(remainTimeStr);\r
}\r
+ } else {\r
+ remainingTimeLabel.setText("estimating...");\r
+ }\r
+\r
+ downloadSpeedLabel.setText(downloadVelocityStr);\r
+ downloadCurrentSizeLabel.setText(downloadCurrentStr);\r
+ downloadTotalSizeLabel.setText(downloadTotalStr);\r
+ \r
+ int percentage = (int) (100 * downloadProgressSize / totalDownloadSize);\r
+ if (percentageOfDownloadProgress != percentage) {\r
+ percentageOfDownloadProgress = percentage;\r
+// circularGraph.update(percentage);\r
}\r
+ }\r
+ });\r
+ }\r
+ \r
+ @Override\r
+ public void revertDownloadSize(final long size) {\r
+ if (display == null || display.isDisposed()) {\r
+ setCanceled(true);\r
+ return;\r
+ }\r
\r
- downloadSpeedLabel.setText("speed : "\r
- + downloadVelocityStr);\r
- downloadProgressBar\r
- .setSelection((int) (100 * downloadProgressSize / totalDownloadSize));\r
+ display.asyncExec(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ /* set current download size */\r
+ downloadProgressSize -= size / (double) 1024;\r
+ }\r
+ });\r
+ }\r
+ \r
+ @Override\r
+ public void downloadDone() {\r
+ if (display == null || display.isDisposed()) {\r
+ setCanceled(true);\r
+ return;\r
+ }\r
+ \r
+ display.asyncExec(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ \r
}\r
});\r
}\r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- installProgressLabel.setText(installProgressWork + "/"\r
- + (totalWork));\r
- installFileNameLabel.setText(getEtcString(fileName));\r
+ installFileNameLabel.setText("Installing : " + getEtcString(fileName));\r
}\r
});\r
}\r
+ \r
+ public void installEnd() {\r
+ long pastTime = System.currentTimeMillis()\r
+ - installStartTime;\r
+ \r
+ totalPastTime += pastTime;\r
+ \r
+ installStartTime = 0;\r
+ }\r
\r
@Override\r
public void workedInstallSize(final long size) {\r
\r
@Override\r
public void run() {\r
- /* set total size */\r
-\r
- String totalSize = "";\r
- if (totalInstallSize >= GB_SIZE) {\r
- totalSize = dformat\r
- .format((totalInstallSize / GB_SIZE)) + "GB";\r
- } else if (totalInstallSize >= MB_SIZE) {\r
- totalSize = dformat\r
- .format((totalInstallSize / MB_SIZE)) + "MB";\r
- } else {\r
- totalSize = totalInstallSize + "KB";\r
- }\r
-\r
/* set current download size */\r
installProgressSize += size / (double) 1024;\r
\r
- String currentSize = "";\r
- if (installProgressSize >= GB_SIZE) {\r
- currentSize = dformat\r
- .format((installProgressSize / GB_SIZE)) + "GB";\r
- } else if (downloadProgressSize >= MB_SIZE) {\r
- currentSize = dformat\r
- .format((installProgressSize / MB_SIZE)) + "MB";\r
- } else {\r
- currentSize = dformat.format(installProgressSize)\r
- + "KB";\r
- }\r
-\r
- // set size to progress bar.\r
-// installProgressBar.setToolTipText(currentSize + "/"\r
-// + totalSize);\r
+ double pastTime = totalPastTime + (System.currentTimeMillis()\r
+ - installStartTime);\r
\r
- long pastTimes = System.currentTimeMillis()\r
- - installStartTime;\r
-\r
- // set remain time\r
- if (pastTimes > 5000) {\r
+ //set remain time\r
+ if (pastTime > 5000) {\r
+ // set remain time\r
double installVelocity = installProgressSize\r
- / (double) (pastTimes / (double) 1000);\r
-\r
+ / (double) (pastTime / (double) 1000);\r
double remainSize = totalInstallSize\r
- installProgressSize;\r
- double remainTime = remainSize / installVelocity;\r
+ \r
+ installRemainTime = remainSize / installVelocity;\r
+ if (installRemainTime > downloadRemainTime) {\r
\r
- int day = (int) (remainTime / DAY);\r
- int hour = (int) ((remainTime % DAY) / HOUR);\r
- int min = (int) ((remainTime % HOUR) / MIN);\r
- int sec = (int) (remainTime % MIN);\r
+ int day = (int) (installRemainTime / DAY);\r
+ int hour = (int) ((installRemainTime % DAY) / HOUR);\r
+ int min = (int) ((installRemainTime % HOUR) / MIN);\r
+ int sec = (int) (installRemainTime % MIN);\r
\r
- if (day > 0) {\r
- remainTimeStr = day + "day ";\r
- }\r
+ if (day > 0) {\r
+ remainTimeStr = day + "day ";\r
+ }\r
\r
- if (hour > 0) {\r
- remainTimeStr += hour + "hour ";\r
- }\r
+ if (hour > 0) {\r
+ remainTimeStr += hour + "hour ";\r
+ }\r
\r
- if (min > 0) {\r
- remainTimeStr += min + "min ";\r
- }\r
+ if (min > 0) {\r
+ remainTimeStr += min + "min ";\r
+ }\r
\r
- if (sec > 0) {\r
- remainTimeStr += sec + "sec";\r
+ if (sec > 0) {\r
+ remainTimeStr += sec + "sec";\r
+ }\r
+ \r
+ remainingTimeLabel.setText(remainTimeStr);\r
}\r
- } else {\r
- remainTimeStr = "estimating...";\r
}\r
-\r
- installRemainingTimeLabel.setText(remainTimeStr);\r
- installProgressBar\r
- .setSelection((int) (100 * installProgressSize / totalInstallSize));\r
+ \r
+ int percentage = (int) (100 * installProgressSize / totalInstallSize);\r
+ \r
+ if (percentageOfInstallProgress != percentage) {\r
+ percentageOfInstallProgress = percentage;\r
+ circularGraph.update(percentage);\r
+ }\r
+ }\r
+ });\r
+ }\r
+ \r
+ @Override\r
+ public void installDone() {\r
+ if (display == null || display.isDisposed()) {\r
+ setCanceled(true);\r
+ return;\r
+ }\r
+ \r
+ display.asyncExec(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ circularGraph.update(100);\r
}\r
});\r
}\r
display.syncExec(new Runnable() {\r
@Override\r
public void run() {\r
- downloadProgressTitleLabel.setText(title);\r
+ \r
}\r
});\r
}\r
}\r
return etcString;\r
}\r
+ \r
+ private String divideSizeString(double size) {\r
+ String divided = "";\r
+ if (size >= GB_SIZE) {\r
+ divided = dformat.format(size / GB_SIZE) + "GB";\r
+ } else if (size >= MB_SIZE) {\r
+ divided = dformat.format(size / MB_SIZE) + "MB";\r
+ } else {\r
+ divided = dformat.format(size / KB_SIZE) + "KB";\r
+ }\r
+ return divided;\r
+ }\r
}\r
}\r
-//=======
-///*
-//* InstallManager
-//*
-//* Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
-//*
-//* Contact:
-//* Wooyoung Cho <wooyoung1.cho@samsung.com>
-//* Shihyun Kim <shihyun.kim@samsung.com>
-//* Taeyoung Son <taeyoung2.son@samsung.com>
-//* Yongsung kim <yongsung1.kim@samsung.com>
-//*
-// * Licensed under the Apache License, Version 2.0 (the "License");
-//* you may not use this file except in compliance with the License.
-//* You may obtain a copy of the License at
-//*
-//* http://www.apache.org/licenses/LICENSE-2.0
-//*
-//* Unless required by applicable law or agreed to in writing, software
-//* distributed under the License is distributed on an "AS IS" BASIS,
-//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//* See the License for the specific language governing permissions and
-//* limitations under the License.
-//*
-//* Contributors:
-//* - S-Core Co., Ltd
-//*
-//*/
-//
-//package org.tizen.installmanager.ui.page;
-//
-//import java.text.DecimalFormat;
-//import java.util.List;
-//
-//import org.eclipse.swt.SWT;
-//import org.eclipse.swt.graphics.Color;
-//import org.eclipse.swt.widgets.Composite;
-//import org.eclipse.swt.widgets.Display;
-//import org.eclipse.swt.widgets.Label;
-//import org.eclipse.swt.widgets.ProgressBar;
-//import org.tizen.installmanager.core.Config;
-//import org.tizen.installmanager.core.IMExitException;
-//import org.tizen.installmanager.core.IMFatalException;
-//import org.tizen.installmanager.core.IMInstallCancelException;
-//import org.tizen.installmanager.lib.ErrorController;
-//import org.tizen.installmanager.lib.ErrorController.InfoCode;
-//import org.tizen.installmanager.lib.IIMProgressMonitor;
-//import org.tizen.installmanager.lib.Log;
-//import org.tizen.installmanager.lib.Platform;
-//import org.tizen.installmanager.lib.ProgramController;
-//import org.tizen.installmanager.lib.Registry;
-//import org.tizen.installmanager.lib.ErrorController.ErrorCode;
-//import org.tizen.installmanager.ui.InstallManagerWindow;
-//import org.tizen.installmanager.ui.dialog.MessageBoxDlg;
-//import org.tizen.installmanager.ui.dialog.MessageBoxDlg.DialogType;
-//
-///**
-// * @author Taeyoung Son <taeyoung2.son@samsung.com>
-// *
-// */
-//public class InstallingPage extends PageTemplate {
-// static final String RSC_PATH_IMAGE = RESOURCE_PATH
-// + "/install_manager_graphicmotif_003.png";
-// static final String STRING_TITLE = "Installation Progress";
-// static final String STRING_SUBTITLE = "Wait while the Tizen SDK installation is being processed.";
-//
-// static final double KB_SIZE = 1;
-// static final double MB_SIZE = KB_SIZE * 1024;
-// static final double GB_SIZE = MB_SIZE * 1024;
-//
-// static final int SEC = 1;
-// static final int MIN = SEC * 60;
-// static final int HOUR = MIN * 60;
-// static final int DAY = HOUR * 24;
-//
-// private static String totalSize;
-// private static String currentSize;
-//
-// private List<String> selectedList;
-// private ProgressBar progressBar;
-// private Label statusLabel;
-// private Label mSubTitleOfProgress;
-// private Label installedNumberLabel;
-// private Label mDownloadVelocity;
-//
-// private ViewController viewController;
-// private String installPath;
-// private InstallProgressMonitor monitor;
-// private InstallManagerWindow mainWindow;
-// Display display;
-//
-// /**
-// * Set basic environment of installing page.
-// * @param parent
-// * @param style
-// */
-// public InstallingPage(Composite parent, int style) {
-// super(parent, style, true);
-//
-// setLeftImageFromResource(RSC_PATH_IMAGE);
-// setTitle(STRING_TITLE);
-// setSubTitle(STRING_SUBTITLE);
-//
-// progressBar = new ProgressBar(customComposite, SWT.NONE);
-// progressBar.setBounds(30, 110, 406, 20);
-//
-// statusLabel = new Label(customComposite, SWT.NONE);
-// statusLabel.setBounds(30, 65, 340, 23);
-// statusLabel.setBackground(InstallManagerWindow.getBackgroundColor());
-//
-// mSubTitleOfProgress = new Label(customComposite, SWT.NONE);
-// mSubTitleOfProgress.setBounds(30, 138, 260, 23);
-// mSubTitleOfProgress.setForeground(new Color(null, 96, 96, 96));
-// mSubTitleOfProgress
-// .setBackground(InstallManagerWindow.getBackgroundColor());
-// mSubTitleOfProgress.setText("");
-//
-// installedNumberLabel = new Label(customComposite, SWT.NONE);
-// installedNumberLabel.setAlignment(SWT.RIGHT);
-// installedNumberLabel.setBounds(275, 90, 160, 23);
-// installedNumberLabel.setForeground(new Color(null, 0, 108, 209));
-// installedNumberLabel
-// .setBackground(InstallManagerWindow.getBackgroundColor());
-// installedNumberLabel.setText("");
-//
-// mDownloadVelocity = new Label(customComposite, SWT.NONE);
-// mDownloadVelocity.setAlignment(SWT.RIGHT);
-// mDownloadVelocity.setBounds(295, 138, 140, 23);
-// mDownloadVelocity.setBackground(InstallManagerWindow.getBackgroundColor());
-// mDownloadVelocity.setForeground(new Color(null, 0, 108, 209));
-// mDownloadVelocity.setText("");
-// }
-//
-// /**
-// * First of all this function check package whether update or not and check install path(target directory)
-// * is empty.
-// * @param selectedList
-// * @param viewController
-// * @param installPath
-// * @param mainWindow
-// * @param isUpdate
-// * @return true is success to install<br>false is fail to install
-// */
-// public boolean loadPage(List<String> selectedList,
-// ViewController viewController, String installPath,
-// InstallManagerWindow mainWindow, boolean isUpdate) {
-// this.selectedList = selectedList;
-// this.viewController = viewController;
-// this.installPath = installPath;
-// this.mainWindow = mainWindow;
-// monitor = new InstallProgressMonitor();
-// display = customComposite.getDisplay();
-//
-// if (isUpdate == true) {
-// ProgramController controller = ProgramController
-// .createProgramController();
-//
-// if (controller.runningProgramExists()) {
-// int confirm = MessageBoxDlg
-// .showDlg(
-// getShell(),
-// "Warning",
-// "The SDK is already running. If you update it, the current version will stop. Are you sure you want to update the SDK?",
-// DialogType.WARNING, false);
-// if (confirm == MessageBoxDlg.YES) {
-// controller.terminateRunningProgram();
-// } else if (confirm == MessageBoxDlg.NO) {
-// return false;
-// }
-// }
-// }
-//
-// new InstallThread(monitor).start();
-//
-// return true;
-// }
-//
-// /**
-// * This class controls process to install.
-// * @author Shihyun Kim <shihyun.kim@samsung.com>
-// */
-// class InstallThread extends Thread {
-//
-// private InstallProgressMonitor monitor;
-//
-// public InstallThread(InstallProgressMonitor monitor) {
-// this.monitor = monitor;
-// }
-//
-// /**
-// * Installing thread run
-// */
-// @Override
-// public void run() {
-// boolean bResult = false;
-// try {
-// bResult = installProcess(monitor);
-// ErrorController.setInstallationSuccess(bResult);
-// } catch (IMFatalException e) {
-// Log.err("internal error occurred");
-// Log.ExceptionLog(e);
-// ErrorController.setInstallationSuccess(false);
-// } catch (Exception e) {
-// Log.err("Unexpected exception occurred");
-// Log.ExceptionLog(e);
-// ErrorController.setInstallationSuccess(false);
-// } finally {
-// monitor.done();
-// }
-// Log.log("finish install thread");
-// }
-// }
-//
-// /**
-// * After set selected package list and install path, start to install.
-// * @param monitor
-// * @throws IMExitException
-// */
-// public boolean installProcess(InstallProgressMonitor monitor) throws IMExitException {
-// boolean bResult = false;
-//
-// try {
-// bResult = viewController.install(selectedList, installPath, monitor);
-//// ErrorController.setError(ErrorCode.INSTALLATION_FAIL);
-// } catch (IMInstallCancelException e) {
-// bResult = false;
-// ErrorController.setError(ErrorCode.INSTALL_CANCELED);
-// Log.log("Installation canceled");
-//
-// return false;
-// }
-//
-// return bResult;
-// }
-//
-// /**
-// * Get install progress monitor object
-// * @return install progress monitor object
-// */
-// public InstallProgressMonitor getInstallProgressMonitor() {
-// return monitor;
-// }
-//
-// /**
-// * @author Shihyun Kim <shihyun.kim@samsung.com>
-// */
-// public class InstallProgressMonitor implements IIMProgressMonitor {
-//
-// private long totalWork;
-// private double mProgressSize = 0;
-// private String mProgressTitle;
-// private String mSubTitle;
-// private String status;
-// private long downloadStartTime = 0;
-// private boolean isCanceled = false;
-//
-// private static final int MAX_LENGTH = 40;
-// private static final String STRING_ETC = "...";
-// private boolean cancelRequested;
-//
-// /**
-// * Set start time to download.
-// */
-// public void setDownloadStartTime(long startTime) {
-// this.downloadStartTime = startTime;
-// }
-//
-// @Override
-// public void beginTask(String name, int totalWork) {
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-// this.totalWork = totalWork;
-// this.status = name;
-// display.asyncExec(new Runnable() {
-// @Override
-// public void run() {
-// statusLabel.setText(status);
-// downloadStartTime = System.currentTimeMillis();
-// }
-// });
-// }
-//
-// private boolean retContinue = false;
-//
-// /**
-// * Check cancel button
-// * @return
-// * true : user press a cancel button
-// * false : user do nothing
-// */
-// public boolean checkCancelAndDisableCancelButton() {
-// retContinue = false;
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return false;
-// }
-// display.syncExec(new Runnable() {
-// @Override
-// public void run() {
-// if (!cancelRequested) {
-// mainWindow.setCancelBtnEnabled(false);
-// mDownloadVelocity.setVisible(false);
-// mSubTitleOfProgress.setBounds(30, 138, 360, 23);
-// retContinue = true;
-// }
-// }
-// });
-// return retContinue;
-// }
-//
-// /**
-// * Control to finish install process
-// */
-// @Override
-// public void done() {
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-//
-// if (Config.status == Config.Status.INSTALL) {
-// Registry.saveSDKInfo(installPath);
-// }
-//
-// display.asyncExec(new Runnable() {
-// @Override
-// public void run() {
-// progressBar.setSelection(100);
-//
-// CompletePage completePage = mainWindow.getCompletePage();
-//
-// if (ErrorController.checkInstallationSuccess()) {
-// completePage.setTitle("Installation Completed");
-//
-// String customMessage = "";
-//
-// if (Platform.isUbuntu()) {
-// if (viewController.isUnityEnvironment()) {
-// customMessage = "Thank you for installing the Tizen SDK. \n\n" +
-// "To use the SDK, search and select 'Tizen IDE' on your unity dash. ";
-// } else {
-// customMessage = "Thank you for installing the Tizen SDK. \n\n" +
-// "To use the SDK, go to Application > Tizen SDK > Tizen IDE. ";
-// }
-// } else if (Platform.isWindows()) {
-// customMessage = "Thank you for installing the Tizen SDK. " +
-// "To use the SDK, go to Start > All Programs > Tizen SDK > Tizen IDE. \n\n";
-// } else {
-// customMessage = "Thank you for installing the Tizen SDK. ";
-// }
-//
-// completePage.setCustomMessage(customMessage);
-// completePage.setErrorTextMsg();
-//
-//// if (ErrorController.existInfoMessage()) {
-// completePage.setInfoMessage(InfoCode.RESTART_THE_COMPUTER.getInfoMessage()/*ErrorController.getInfoMessage()*/);
-//// }
-//
-// Log.log("installation complete");
-// } else {
-// Log.log("(un)installation failed");
-// completePage.setTitle("(Un)Installation failed");
-// completePage.setCustomErrorMessage(ErrorController.getErrorMessage() + "\n");
-// mainWindow.getCompletePage().showCheckButton(false);
-// }
-//
-// mainWindow.setNameOfCancelButton("Close");
-// mainWindow.setCancelBtnEnabled(true);
-// mainWindow.showComposite(completePage);
-// }
-// });
-// }
-//
-// @Override
-// public void internalWorked(double work) {
-// // Do nothing.
-// }
-//
-// @Override
-// public boolean isCanceled() {
-// return isCanceled;
-// }
-//
-// @Override
-// public void setCanceled(boolean value) {
-// isCanceled = value;
-// }
-//
-// @Override
-// public void setTaskName(String name) {
-// // Do nothing.
-// }
-//
-// @Override
-// public void subTask(String name) {
-// // Do nothing.
-// }
-//
-// /**
-// * set working package name to show during installing
-// */
-// @Override
-// public void worked(final int work) {
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-// display.syncExec(new Runnable() {
-// @Override
-// public void run() {
-// installedNumberLabel.setText(work + "/" + (totalWork));
-// progressBar.setSelection(100 * work / (int) totalWork);
-// }
-// });
-// }
-//
-// /**
-// * set working file name to show during installing
-// */
-// @Override
-// public void workedTitle(String title) {
-// mProgressTitle = title;
-//
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-//
-// display.syncExec(new Runnable() {
-// @Override
-// public void run() {
-// statusLabel.setText(mProgressTitle);
-// }
-// });
-// }
-//
-// /**
-// * set working file name to show during installing
-// */
-// @Override
-// public void workedSubTitle(String subTitle) {
-// if (subTitle.length() > MAX_LENGTH) {
-// mSubTitle = subTitle.substring(0, MAX_LENGTH - 2);
-// mSubTitle = mSubTitle + STRING_ETC;
-// } else {
-// mSubTitle = subTitle;
-// }
-//
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-//
-// display.syncExec(new Runnable() {
-// @Override
-// public void run() {
-// mSubTitleOfProgress.setText(mSubTitle);
-// }
-// });
-// }
-//
-// @Override
-// public void workedProcess(String title) {
-// if (title == null || title.isEmpty()) {
-// return;
-// }
-//
-// String processTitle = "Processing : package \"" + title + "\"";
-// workedTitle(processTitle);
-// }
-//
-// @Override
-// public void workedDownload(String title) {
-// if (title == null || title.isEmpty()) {
-// return;
-// }
-//
-// workedTitle("Downloading : " + title);
-// }
-//
-// @Override
-// public void workedChecksum(String title) {
-// if (title == null || title.isEmpty()) {
-// return;
-// }
-//
-// workedTitle("File checking : " + title);
-// }
-//
-// /**
-// * check validation of download
-// */
-// public void workedChecksum(final long size) {
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-// display.asyncExec(new Runnable() {
-// private String pattern = ".##";
-// private DecimalFormat dformat = new DecimalFormat(pattern);
-//
-// public void run() {
-// /* set total size */
-// mProgressSize += size / (double) 1024;
-// if (totalWork >= GB_SIZE) {
-// totalSize = dformat.format((totalWork / GB_SIZE)) + "GB";
-// } else if (totalWork >= MB_SIZE) {
-// totalSize = dformat.format((totalWork / MB_SIZE)) + "MB";
-// } else {
-// totalSize = totalWork + "KB";
-// }
-//
-// /* set current download size */
-// if (mProgressSize >= GB_SIZE) {
-// currentSize = dformat.format((mProgressSize / GB_SIZE)) + "GB";
-// } else if (mProgressSize >= MB_SIZE) {
-// currentSize = dformat.format((mProgressSize / MB_SIZE)) + "MB";
-// } else {
-// currentSize = dformat.format(mProgressSize) + "KB";
-// }
-//
-// installedNumberLabel.setText(currentSize + "/" + totalSize);
-// mSubTitleOfProgress.setText("");
-// mDownloadVelocity.setText("");
-// progressBar.setSelection((int) (100 * mProgressSize / totalWork));
-//
-// }
-// });
-// }
-//
-// /**
-// * Control download and show download information.
-// */
-// @Override
-// public void workedDownload(final long size) {
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-// display.asyncExec(new Runnable() {
-// private String pattern = ".00";
-// private DecimalFormat dformat = new DecimalFormat(pattern);
-// private String remainTimeStr = "";
-// private String downloadVelocityStr = "";
-//
-// @Override
-// public void run() {
-// /* set total size */
-// mProgressSize += size / (double) 1024;
-// if (totalWork >= GB_SIZE) {
-// totalSize = dformat.format((totalWork / GB_SIZE)) + "GB";
-// } else if (totalWork >= MB_SIZE) {
-// totalSize = dformat.format((totalWork / MB_SIZE)) + "MB";
-// } else {
-// totalSize = totalWork + "KB";
-// }
-//
-// /* set current download size */
-// if (mProgressSize >= GB_SIZE) {
-// currentSize = dformat.format((mProgressSize / GB_SIZE)) + "GB";
-// } else if (mProgressSize >= MB_SIZE) {
-// currentSize = dformat.format((mProgressSize / MB_SIZE)) + "MB";
-// } else {
-// currentSize = dformat.format(mProgressSize) + "KB";
-// }
-//
-// long pastTimes = System.currentTimeMillis()
-// - downloadStartTime;
-//
-// /* set download velocity */
-//
-// double downloadVelocity = 0;
-//
-// if (pastTimes > 5000) {
-// downloadVelocity = mProgressSize / (double) (pastTimes / (double) 1000);
-//
-// if (downloadVelocity >= GB_SIZE) {
-// downloadVelocityStr = dformat.format(downloadVelocity / GB_SIZE) + "GB/s";
-// } else if (downloadVelocity >= MB_SIZE) {
-// downloadVelocityStr = dformat.format(downloadVelocity / MB_SIZE) + "MB/s";
-// } else {
-// downloadVelocityStr = dformat.format(downloadVelocity / KB_SIZE) + "KB/s";
-// }
-// }
-// /* set remain time */
-// double remainTime = 0;
-// if (downloadVelocity == 0) {
-// remainTimeStr = "estimating...";
-// } else {
-// double remainSize = totalWork - mProgressSize;
-// remainTime = remainSize / downloadVelocity;
-//
-// int day = (int) (remainTime / DAY);
-// int hour = (int) ((remainTime % DAY) / HOUR);
-// int min = (int) ((remainTime % HOUR) / MIN);
-// int sec = (int) (remainTime % MIN);
-//
-// if (day > 0) {
-// remainTimeStr = day + "day ";
-// }
-//
-// if (hour > 0) {
-// remainTimeStr += hour + "hour ";
-// }
-//
-// if (min > 0) {
-// remainTimeStr += min + "min ";
-// }
-//
-// if (sec > 0) {
-// remainTimeStr += sec + "sec";
-// }
-// }
-//
-// installedNumberLabel.setText(currentSize + "/" + totalSize);
-// mSubTitleOfProgress.setText("Remaining time : " + remainTimeStr);
-// mDownloadVelocity.setText(downloadVelocityStr);
-// progressBar.setSelection((int) (100 * mProgressSize / totalWork));
-// }
-// });
-// }
-//
-//
-// /**
-// * Show percentage for progress bar
-// */
-// @Override
-// public void workedProgressbar(final int percent) {
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-// display.asyncExec(new Runnable() {
-// @Override
-// public void run() {
-// progressBar.setSelection(percent);
-// }
-// });
-// }
-//
-// public void setCancelRequested(boolean b) {
-// cancelRequested = b;
-// }
-//
-// @Override
-// public void workedRefresh() {
-// mProgressSize = 0;
-// }
-//
-// @Override
-// public void setError(int errorCode) {
-// // TODO Auto-generated method stub
-//
-// }
-// }
-//}
-//>>>>>>> Stashed changes
import org.eclipse.swt.widgets.TreeItem;
import org.tizen.installmanager.core.Config;
import org.tizen.installmanager.lib.Platform;
+import org.tizen.installmanager.pkg.lib.PackageManager;
import org.tizen.installmanager.pkg.model.Package;
import org.tizen.installmanager.pkg.model.PackageSet;
import org.tizen.installmanager.ui.InstallManagerWindow;
TreeColumn trclmnC = new TreeColumn(tree, SWT.CENTER);
trclmnC.setWidth(70);
- trclmnC.setText("Install size");
+ trclmnC.setText("Install size");
}
private void setCheckboxTreeViewer(final Type type) {
checkboxTreeViewer.setContentProvider(new ItemTreeContentProvider());
checkboxTreeViewer.setLabelProvider(new ItemLabelProvider());
+ List<Item> tmp = getItems();
checkboxTreeViewer.setInput(getItems());
checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() {
}
private void setCheckState(Item selectedItem, boolean checked) {
- if (selectedItem.getInstallState() == InstallState.INSTALL) {
+ if (Config.status == Config.Status.UPDATE) {
+ if (selectedItem.getInstallState() == InstallState.INSTALL) {
+ selectedItem.setCheckState(checked);
+ }
+ } else {
selectedItem.setCheckState(checked);
}
}
abstract public boolean loadPage(ViewController controller);
- protected void loadPackagesToTreeViewer(PackageSet packageSet) {
+ protected void loadPackagesToTreeViewer(PackageSet packageSet, Type type) {
//make tree items from package set.
- List<Item> treeItems = viewController.getPackageSetOfTree();
-
- items.addAll(treeItems);
+ List<Item> treeItems = new ArrayList<Item>();
+ List<Item> treeIts;
+ if (type != Type.UNINSTALL) {
+ treeItems = viewController.getPackageSetOfTree();
+
+ items.addAll(treeItems);
+ // make relation for item tree.
+ makeRelation(items);
+ } else {
+ treeIts = viewController.getPackageSetOfTree();
+ treeItems = getRemovableSetOfTree(treeIts);
+ items.addAll(treeItems);
+ }
- // make relation for item tree.
- makeRelation(items);
+// items.addAll(treeItems);
+//
+//// make relation for item tree.
+// makeRelation(items);
makeState();
}
+ public List<Item> getRemovableSetOfTree(List<Item> treeItemSet) {
+ makeRelation(treeItemSet);
+ List<Item> treeItems = new ArrayList<Item>();
+
+ for (Item item : treeItemSet) {
+ if (item.hasChildren()) {
+ treeItems.addAll(getRemovableSetOfTree(item.getChildren()));
+ } else {
+ if (item.getInstallState() == InstallState.UNINSTALL) {
+ if (!treeItems.contains(item)) {
+ treeItems.add(item);
+ }
+
+ if (item.getParent() != null && !treeItems.contains(item.getParent())) {
+ treeItems.add(item.getParent());
+ }
+ }
+ }
+ }
+
+ return treeItems;
+ }
+
public void addExtensionPackagesToExtra(PackageSet packageSet) {
Item extraItem = getExtraTreeItem();
if (extraItem == null) {
*/
public int getCheckedPackageNumber() {
int result = 0;
- if (checkboxTreeViewer != null) {
- Object[] items = checkboxTreeViewer.getCheckedElements();
+ int leafCnt = 0;
+ int installedCnt = 0;
+
+ Object[] items = checkboxTreeViewer.getCheckedElements();
+
+ if (Config.status == Config.Status.UPDATE) {
+ if (checkboxTreeViewer != null) {
+ List<Item> itemList = new ArrayList<Item>();
+ for (Object o : items) {
+ itemList.add((Item)o);
+ }
+
+ // Count checked node items.
+ for (Item i : itemList) {
+ if (i.getParent() != null) { // it means leaf node.
+ leafCnt ++;
+ } else if (!i.hasChildren()) { // it means top node which does not have children.
+ leafCnt ++;
+ }
+ }
+
+ // Count installed items among checked items.
+ for (Item i : itemList) {
+ if (i.getInstallState() == InstallState.UNINSTALL) {
+ installedCnt++;
+ }
+ }
+
+ result = leafCnt - installedCnt;
+ }
+ } else {
result = items.length;
}
+
return result;
}
// customComposite.setSize(468, 304);
// customComposite.setLocation(160, 90);
customComposite.setBounds(0, 108, 628, 297);
-// customComposite.setBackground(InstallManagerWindow.getBackgroundColor());
- customComposite.setBackground(new Color(null, new RGB(100, 100, 100)));
+ customComposite.setBackground(InstallManagerWindow.getBackgroundColor());
+// customComposite.setBackground(new Color(null, new RGB(100, 100, 100)));
} else {
customComposite = new Composite(this, SWT.NONE);
customComposite.setSize(468, 304);
customComposite.setLocation(160, 90);
-// customComposite.setBackground(InstallManagerWindow.getBackgroundColor());
- customComposite.setBackground(new Color(null, new RGB(100, 100, 100)));
+ customComposite.setBackground(InstallManagerWindow.getBackgroundColor());
+// customComposite.setBackground(new Color(null, new RGB(100, 100, 100)));
}
}
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.tizen.installmanager.core.Config;
import org.tizen.installmanager.core.IMFatalException;
@Override
public void widgetSelected(SelectionEvent e) {
System.out.println("Start installing");
-// mainWindow.getNextButton().notifyListeners(SWT.Selection, new Event());
+ InstallManagerWindow mainWindow = InstallManagerWindow.getInstallManagerWindow();
+ mainWindow.getNextButton().notifyListeners(SWT.Selection, new Event());
}
});
}
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.swt.widgets.Composite;
import org.tizen.installmanager.ui.model.Item;
+import org.tizen.installmanager.pkg.lib.PackageManager;
+import org.tizen.installmanager.pkg.model.Package;
+import org.tizen.installmanager.pkg.model.PackageSet;
/**
* @author Taeyoung Son <taeyoung2.son@samsung.com>
*/
public class UninstallableListPage extends PackageListPage {
+ private static final String RSC_PATH_IMAGE_NEW = RESOURCE_PATH_NEW + "/02_installation_option_bg.png";
static final String RSC_PATH_IMAGE = RESOURCE_PATH + "/uninstaller_graphicmotif_001.png";
- static final String STRING_TITLE = "Uninstall Items";
+ static final String STRING_TITLE = "Select uninstall components";
static final String STRING_SUBTITLE = "You can see the items to uninstall.";
/**
public UninstallableListPage(Composite parent, int style) {
super(parent, style, Type.UNINSTALL);
- setLeftImageFromResource(RSC_PATH_IMAGE);
- setTitle(STRING_TITLE);
- setSubTitle(STRING_SUBTITLE);
+ setLeftImageFromResource(RSC_PATH_IMAGE_NEW);
+// setTitle(STRING_TITLE);
+// setSubTitle(STRING_SUBTITLE);
+
+ disableTitleBounds();
+ disableSubtitleBounds();
+
+ setTitleLabelText(STRING_TITLE);
checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() {
@Override
this.viewController = controller;
getItems().clear();
- loadPackagesToTreeViewer(viewController.getRemovableMetaPackageList());
+ PackageSet removablePkgs = viewController.getRemovableMetaPackageList();
+ PackageSet ps2 = PackageManager.getInstance().getRootMetaPackagesOfRepository();
+ PackageSet ps1 = viewController.getInstalledPackages();
+ PackageSet ps = PackageManager.getInstance().getInstalledMetaPackages();
+ for (Package p : viewController.getRemovableMetaPackageList()) {
+ if (p.getAttribute().equalsIgnoreCase("extra")) {
+ removablePkgs.remove(p);
+ }
+ }
+ loadPackagesToTreeViewer(removablePkgs, Type.UNINSTALL);
+
+// viewController.loadSdkExtension();
+// addExtensionPackagesToExtra(viewController.getRootMetaPackageListOfExtension());
if (getItems().size() <= 0) {
setUninstallAll();
* Change column in uninstallable list page.
*/
protected void setUninstallColumn() {
+ tree.getColumn(0).setWidth(350);
tree.getColumn(1).setText("Status");
-// tree.getColumn(1).setWidth(0);
+ tree.getColumn(2).setWidth(0);
// tree.getColumn(2).setText("Installed version");
// tree.getColumn(3).setWidth(0);
}
import org.tizen.installmanager.ui.InstallManagerWindow;\r
import org.tizen.installmanager.ui.dialog.MessageBoxDlg;\r
import org.tizen.installmanager.ui.dialog.MessageBoxDlg.DialogType;\r
+import org.tizen.installmanager.ui.lib.IMCircularGraph;\r
+import org.tizen.installmanager.ui.page.InstallPage.CIRCULAR_TYPE;\r
import org.tizen.installmanager.pkg.model.Package;\r
\r
/**\r
* @author Taeyoung Son <taeyoung2.son@samsung.com>\r
* @author Shihyun Kim <shihyun.kim@samsung.com>\r
*/\r
-public class UninstallingPage extends PageTemplate {\r
+public class UninstallingPage extends InstallPage {\r
static final String RSC_PATH_IMAGE = RESOURCE_PATH + "/uninstaller_graphicmotif_002.png";\r
static final String STRING_TITLE = "Uninstalling...";\r
static final String STRING_SUBTITLE = "";\r
\r
+ private Label unInstallFileNameLabel;\r
\r
- private ProgressBar progressBar;\r
- private Label statusLabel;\r
- private Label uninstalledNumberLabel;\r
- private Label mSubTitleOfProgress;\r
+// private ProgressBar progressBar;\r
+// private Label statusLabel;\r
+// private Label uninstalledNumberLabel;\r
+// private Label mSubTitleOfProgress;\r
\r
private ViewController viewController;\r
private UninstallProgressMonitor monitor;\r
*/\r
public UninstallingPage(Composite parent, int style) {\r
super(parent, style, true);\r
- setLeftImageFromResource(RSC_PATH_IMAGE);\r
- setTitle(STRING_TITLE);\r
- setSubTitle(STRING_SUBTITLE);\r
-\r
- progressBar = new ProgressBar(customComposite, SWT.NONE);\r
- progressBar.setBounds(40, 110, 396, 20);\r
-\r
- statusLabel = new Label(customComposite, SWT.NONE);\r
- statusLabel.setBounds(40, 80, 343, 23);\r
- statusLabel.setForeground(new Color(null, 96, 96, 96));\r
- statusLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
-\r
- mSubTitleOfProgress = new Label(customComposite, SWT.NONE);\r
- mSubTitleOfProgress.setBounds(40, 138, 250, 23);\r
- mSubTitleOfProgress.setBackground(InstallManagerWindow.getBackgroundColor());\r
- mSubTitleOfProgress.setText("");\r
-\r
- uninstalledNumberLabel = new Label(customComposite, SWT.CENTER);\r
- uninstalledNumberLabel.setBounds(353, 138, 80, 23);\r
- uninstalledNumberLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
- uninstalledNumberLabel.setText("");\r
+ disableTitleBounds();\r
+ disableSubtitleBounds();\r
+ \r
+ setTitleLabelText(STRING_TITLE);\r
+ setProgressCircle(customComposite, CIRCULAR_TYPE.PERCENTAGE);\r
+\r
+// progressBar = new ProgressBar(customComposite, SWT.NONE);\r
+// progressBar.setBounds(40, 110, 396, 20);\r
+\r
+// statusLabel = new Label(customComposite, SWT.NONE);\r
+// statusLabel.setBounds(40, 80, 343, 23);\r
+// statusLabel.setForeground(new Color(null, 96, 96, 96));\r
+// statusLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// statusLabel.setBackground(new Color(null, 96, 96, 96));\r
+\r
+// mSubTitleOfProgress = new Label(customComposite, SWT.NONE);\r
+// mSubTitleOfProgress.setBounds(40, 138, 250, 23);\r
+// mSubTitleOfProgress.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// mSubTitleOfProgress.setBackground(new Color(null, 196, 196, 96));\r
+// mSubTitleOfProgress.setText("");\r
+\r
+// uninstalledNumberLabel = new Label(customComposite, SWT.CENTER);\r
+// uninstalledNumberLabel.setBounds(353, 138, 80, 23);\r
+// uninstalledNumberLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+// uninstalledNumberLabel.setText("");\r
+ setInstallFileNameLabel();\r
+ }\r
+ \r
+ private void setInstallFileNameLabel() {\r
+ unInstallFileNameLabel = new Label(customComposite, SWT.NONE);\r
+ unInstallFileNameLabel.setAlignment(SWT.CENTER);\r
+ unInstallFileNameLabel.setBounds(0, 189, 628, 20);\r
+ unInstallFileNameLabel.setForeground(new Color(null, 96, 96, 96));\r
+ unInstallFileNameLabel.setBackground(InstallManagerWindow.getBackgroundColor());\r
+ unInstallFileNameLabel.setText("uninstall file name");\r
}\r
\r
/**\r
\r
private static final int MAX_LENGTH = 40;\r
private static final String STRING_ETC = "...";\r
+ \r
+ private IMCircularGraph circularGraph = getCircularGraph();\r
\r
@Override\r
public void beginTask(final String name, int totalWork) {\r
\r
@Override\r
public void run() {\r
- statusLabel.setText(name);\r
+ unInstallFileNameLabel.setText(name);\r
}\r
});\r
}\r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- progressBar.setSelection(100);\r
+ circularGraph.update(100);\r
\r
CompletePage completePage = mainWindow.getCompletePage();\r
- completePage.setLeftImageFromResource(CompletePage.RSC_PATH_UNINSTALL_IMAGE);\r
- completePage.showCheckButton(false);\r
- mainWindow.setCancelBtnEnabled(true);\r
- mainWindow.showComposite(completePage);\r
+// completePage.setLeftImageFromResource(CompletePage.RSC_PATH_IMAGE_NEW);\r
+ \r
\r
if (ErrorController.checkInstallationSuccess()) {\r
- completePage.setTitle("Uninstallation Completed!");\r
+ completePage.setTitleLabelText("Uninstallation Completed!");\r
if (!viewController.existRemovablePackage()) {\r
completePage.removeTargetDir();\r
}\r
\r
String msg = "Thank you for using Tizen SDK. "; \r
- completePage.setCustomMessage(msg);\r
+ completePage.setCustomMessage(msg, SWT.RIGHT);\r
\r
if (ErrorController.existInfoMessage()) {\r
- completePage.setInfoMessage(ErrorController.getInfoMessage());\r
+ completePage.setInfoMessage(ErrorController.getInfoMessage(), SWT.RIGHT);\r
}\r
} else {\r
- completePage.setTitle("Uninstallation Failed!");\r
+ completePage.setTitleLabelText("Uninstallation Failed!");\r
completePage.setCustomErrorMessage("Sorry, Uninstallation was not success. Please try uninstall again.\n"\r
- + "Datail : " + ErrorController.getErrorMessage());\r
+ + "Datail : " + ErrorController.getErrorMessage(), SWT.LEFT);\r
}\r
+ \r
+ completePage.showCheckButton(false);\r
+ mainWindow.setNameOfCancelButton("Close");\r
+ mainWindow.setCancelBtnEnabled(true);\r
+ mainWindow.showComposite(completePage);\r
}\r
});\r
}\r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- mSubTitleOfProgress.setText(mSubTitle);\r
- uninstalledNumberLabel.setText(work + "/" + totalWork);\r
- progressBar.setSelection(100 * work / totalWork);\r
+// mSubTitleOfProgress.setText(mSubTitle);\r
+// uninstalledNumberLabel.setText(work + "/" + totalWork);\r
+// progressBar.setSelection(100 * work / totalWork);\r
+ int percentage = (int) (100 * work / totalWork);\r
+ circularGraph.update(percentage);\r
}\r
});\r
}\r
display.syncExec(new Runnable() {\r
@Override\r
public void run() {\r
- statusLabel.setText(mProgressTitle);\r
+ unInstallFileNameLabel.setText("Uninstalling : " + mProgressTitle);\r
}\r
});\r
}\r
display.asyncExec(new Runnable() {\r
@Override\r
public void run() {\r
- mSubTitleOfProgress.setText(mSubTitle);\r
+// mSubTitleOfProgress.setText(mSubTitle);\r
}\r
});\r
}\r
public void workedInstallSize(long size) {\r
//Do nothing\r
}\r
+\r
+ @Override\r
+ public void revertDownloadSize(long size) {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
+ @Override\r
+ public void downloadDone() {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
+ @Override\r
+ public void installDone() {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
}\r
}\r
-//=======
-///*
-//* InstallManager
-//*
-//* Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
-//*
-//* Contact:
-//* Wooyoung Cho <wooyoung1.cho@samsung.com>
-//* Shihyun Kim <shihyun.kim@samsung.com>
-//* Taeyoung Son <taeyoung2.son@samsung.com>
-//* Yongsung kim <yongsung1.kim@samsung.com>
-//*
-// * Licensed under the Apache License, Version 2.0 (the "License");
-//* you may not use this file except in compliance with the License.
-//* You may obtain a copy of the License at
-//*
-//* http://www.apache.org/licenses/LICENSE-2.0
-//*
-//* Unless required by applicable law or agreed to in writing, software
-//* distributed under the License is distributed on an "AS IS" BASIS,
-//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//* See the License for the specific language governing permissions and
-//* limitations under the License.
-//*
-//* Contributors:
-//* - S-Core Co., Ltd
-//*
-//*/
-//
-//package org.tizen.installmanager.ui.page;
-//
-//import java.util.ArrayList;
-//import java.util.List;
-//
-//import org.eclipse.swt.SWT;
-//import org.eclipse.swt.graphics.Color;
-//import org.eclipse.swt.widgets.Composite;
-//import org.eclipse.swt.widgets.Display;
-//import org.eclipse.swt.widgets.Label;
-//import org.eclipse.swt.widgets.ProgressBar;
-//import org.tizen.installmanager.core.IMFatalException;
-//import org.tizen.installmanager.core.InstallManager;
-//import org.tizen.installmanager.lib.ErrorController;
-//import org.tizen.installmanager.lib.IIMProgressMonitor;
-//import org.tizen.installmanager.lib.Log;
-//import org.tizen.installmanager.lib.ProgramController;
-//import org.tizen.installmanager.pkg.model.PackageSet;
-//import org.tizen.installmanager.ui.InstallManagerWindow;
-//import org.tizen.installmanager.ui.dialog.MessageBoxDlg;
-//import org.tizen.installmanager.ui.dialog.MessageBoxDlg.DialogType;
-//import org.tizen.installmanager.pkg.model.Package;
-//
-///**
-// * @author Taeyoung Son <taeyoung2.son@samsung.com>
-// * @author Shihyun Kim <shihyun.kim@samsung.com>
-// */
-//public class UninstallingPage extends PageTemplate {
-// static final String RSC_PATH_IMAGE = RESOURCE_PATH + "/uninstaller_graphicmotif_002.png";
-// static final String STRING_TITLE = "Uninstalling...";
-// static final String STRING_SUBTITLE = "";
-//
-//
-// private ProgressBar progressBar;
-// private Label statusLabel;
-// private Label uninstalledNumberLabel;
-// private Label mSubTitleOfProgress;
-//
-// private ViewController viewController;
-// private UninstallProgressMonitor monitor;
-// private InstallManagerWindow mainWindow;
-// Display display;
-//
-// /**
-// * Set basic environment of uninstalling page.
-// * @param parent
-// * @param style
-// */
-// public UninstallingPage(Composite parent, int style) {
-// super(parent, style, true);
-// setLeftImageFromResource(RSC_PATH_IMAGE);
-// setTitle(STRING_TITLE);
-// setSubTitle(STRING_SUBTITLE);
-//
-// progressBar = new ProgressBar(customComposite, SWT.NONE);
-// progressBar.setBounds(40, 110, 396, 20);
-//
-// statusLabel = new Label(customComposite, SWT.NONE);
-// statusLabel.setBounds(40, 80, 343, 23);
-// statusLabel.setForeground(new Color(null, 96, 96, 96));
-// statusLabel.setBackground(InstallManagerWindow.getBackgroundColor());
-//
-// mSubTitleOfProgress = new Label(customComposite, SWT.NONE);
-// mSubTitleOfProgress.setBounds(40, 138, 250, 23);
-// mSubTitleOfProgress.setBackground(InstallManagerWindow.getBackgroundColor());
-// mSubTitleOfProgress.setText("");
-//
-// uninstalledNumberLabel = new Label(customComposite, SWT.CENTER);
-// uninstalledNumberLabel.setBounds(353, 138, 80, 23);
-// uninstalledNumberLabel.setBackground(InstallManagerWindow.getBackgroundColor());
-// uninstalledNumberLabel.setText("");
-// }
-//
-// /**
-// * Display uninstalling page, if sdk is running during uninstalling, page will show warning dialog.
-// * @param selectedList
-// * @param vController
-// * @param mainWindow
-// * @return
-// */
-// public boolean loadPage(
-// List<String> selectedList, ViewController vController,
-// InstallManagerWindow mainWindow) {
-// this.viewController = vController;
-// this.mainWindow = mainWindow;
-// monitor = new UninstallProgressMonitor();
-// display = customComposite.getDisplay();
-//
-// //kill running process.
-// ProgramController controller = ProgramController.createProgramController();
-// if (controller.runningProgramExists()) {
-// int confirm = MessageBoxDlg.showDlg(
-// getShell(),
-// "Warning",
-// "The SDK is already running. If you uninstall it, the current version will stop. Are you sure you want to uninstall the SDK?",
-// DialogType.WARNING, false);
-// if (confirm == MessageBoxDlg.YES) {
-// controller.terminateRunningProgram();
-// } else if (confirm == MessageBoxDlg.NO) {
-// return false;
-// }
-// }
-//
-// //start uninstall.
-// final UninstallThread uninstallThread = new UninstallThread(monitor);
-// uninstallThread.start();
-//
-// return true;
-// }
-//
-// /**
-// * This class controls process to uninstall.
-// * @author Shihyun Kim <Shihyun.kim@samsung.com>
-// */
-// class UninstallThread extends Thread {
-// private IIMProgressMonitor monitor;
-//
-// public UninstallThread(IIMProgressMonitor monitor) {
-// this.monitor = monitor;
-// }
-//
-// /**
-// * Uninstalling thread run
-// */
-// @Override
-// public void run() {
-// try {
-// uninstallProcess(monitor);
-// } catch (IMFatalException e) {
-// Log.err("internal error occurred");
-// Log.ExceptionLog(e);
-// ErrorController.setInstallationSuccess(false);
-// } catch (Exception e) {
-// Log.err("Unexpected exception occurred");
-// Log.ExceptionLog(e);
-// ErrorController.setInstallationSuccess(false);
-// } finally {
-// monitor.done();
-// }
-// Log.log("finish uninstall thread");
-// }
-// }
-//
-// /**
-// * After check selected package list size, start to uninstall.
-// * @param monitor
-// */
-// public void uninstallProcess(IIMProgressMonitor monitor) { boolean result = false;
-// Log.log("****** Uninstall SDK ******");
-// PackageSet pkgs = InstallManager.getInstance().getPackageManager().getInstalledPackages();
-// List<String> installedList = new ArrayList<String>();
-// for (Package pkg : pkgs) {
-// installedList.add(pkg.getPackageName());
-// }
-//
-// if (installedList.size() <= 0) {
-// return;
-// } else {
-// Log.log("Uninstalling SDK : " + viewController.getInstalledPath());
-// result = viewController.uninstall(installedList, monitor);
-// }
-//
-// ErrorController.setInstallationSuccess(result);
-// }
-//
-// /**
-// * @author Shihyun Kim <shihyun.kim@samsung.com>
-// */
-// public class UninstallProgressMonitor implements IIMProgressMonitor {
-//
-// private int totalWork;
-// private String mProgressTitle = "";
-// private String mSubTitle = "";
-//
-// private static final int MAX_LENGTH = 40;
-// private static final String STRING_ETC = "...";
-//
-// @Override
-// public void beginTask(final String name, int totalWork) {
-// this.mProgressTitle = name;
-// this.totalWork = totalWork;
-// display.asyncExec(new Runnable() {
-//
-// @Override
-// public void run() {
-// statusLabel.setText(name);
-// }
-// });
-// }
-//
-// /**
-// * Control to finish uninstall process
-// */
-// @Override
-// public void done() {
-// display.asyncExec(new Runnable() {
-// @Override
-// public void run() {
-// progressBar.setSelection(100);
-//
-// CompletePage completePage = mainWindow.getCompletePage();
-// completePage.setLeftImageFromResource(CompletePage.RSC_PATH_UNINSTALL_IMAGE);
-// completePage.showCheckButton(false);
-// mainWindow.setCancelBtnEnabled(true);
-// mainWindow.showComposite(completePage);
-//
-// if (ErrorController.checkInstallationSuccess()) {
-// completePage.setTitle("Uninstallation Completed!");
-// if (!viewController.existRemovablePackage()) {
-// completePage.removeTargetDir();
-// }
-//
-// String msg = "Thank you for using Tizen SDK. ";
-// completePage.setCustomMessage(msg);
-//
-// if (ErrorController.existInfoMessage()) {
-// completePage.setInfoMessage(ErrorController.getInfoMessage());
-// }
-// } else {
-// completePage.setTitle("Uninstallation Failed!");
-// completePage.setCustomErrorMessage("Sorry, Uninstallation was not success. Please try uninstall again.\n"
-// + "Datail : " + ErrorController.getErrorMessage());
-// }
-// }
-// });
-// }
-//
-// @Override
-// public void internalWorked(double work) {
-// // Do nothing.
-// }
-//
-// @Override
-// public boolean isCanceled() {
-// return false;
-// }
-//
-// @Override
-// public void setCanceled(boolean value) {
-// // Do nothing.
-// }
-//
-// @Override
-// public void setTaskName(String name) {
-// // Do nothing.
-// }
-//
-// @Override
-// public void subTask(String name) {
-// // Do nothing.
-// }
-//
-// /**
-// * set working package name to show during uninstalling
-// */
-// @Override
-// public void worked(final int work) {
-// display.asyncExec(new Runnable() {
-// @Override
-// public void run() {
-// mSubTitleOfProgress.setText(mSubTitle);
-// uninstalledNumberLabel.setText(work + "/" + totalWork);
-// progressBar.setSelection(100 * work / totalWork);
-// }
-// });
-// }
-//
-// /**
-// * set working file name to show during installing
-// */
-// @Override
-// public void workedTitle(String title) {
-// mProgressTitle = title;
-//
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-//
-// display.syncExec(new Runnable() {
-// @Override
-// public void run() {
-// statusLabel.setText(mProgressTitle);
-// }
-// });
-// }
-//
-// /**
-// * set working file name to show during uninstalling
-// */
-// @Override
-// public void workedSubTitle(String subTitle) {
-// if (subTitle.length() > MAX_LENGTH) {
-// mSubTitle = subTitle.substring(0, MAX_LENGTH - 2);
-// mSubTitle = mSubTitle + STRING_ETC;
-// } else {
-// mSubTitle = subTitle;
-// }
-//
-// if (display == null || display.isDisposed()) {
-// setCanceled(true);
-// return;
-// }
-//
-// display.asyncExec(new Runnable() {
-// @Override
-// public void run() {
-// mSubTitleOfProgress.setText(mSubTitle);
-// }
-// });
-// }
-//
-// @Override
-// public void workedProcess(String title) {
-// if (title == null || title.isEmpty()) {
-// return;
-// }
-//
-// workedTitle("Processing : package \"" + mProgressTitle + "\"");
-// }
-//
-// @Override
-// public void workedDownload(long size) {
-// //Do nothing
-// }
-//
-// @Override
-// public void setDownloadStartTime(long startTime) {
-// //Do nothing
-// }
-//
-// @Override
-// public void workedChecksum(long size) {
-// //Do nothing
-// }
-//
-// @Override
-// public void workedProgressbar(int percent) {
-// progressBar.setSelection(percent);
-// }
-//
-// @Override
-// public void workedRefresh() {
-// //Do nothing
-//
-// }
-//
-// @Override
-// public void setError(int errorCode) {
-// //Do nothing
-//
-// }
-//
-// @Override
-// public void workedDownload(String title) {
-// //Do nothing
-// }
-//
-// @Override
-// public void workedChecksum(String title) {
-// //Do nothing
-//
-// }
-// }
-//}
-//>>>>>>> Stashed changes
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.tizen.installmanager.core.IMFatalException;
import org.tizen.installmanager.lib.ErrorController;
import org.tizen.installmanager.lib.IMError;
import org.tizen.installmanager.lib.Log;
+import org.tizen.installmanager.ui.InstallManagerWindow;
+import org.tizen.installmanager.ui.dialog.AddExtraRepositoryDialog;
/**
* This class displays installable package list on page.
* @author Yongsung Kim <yongsung1.kim@samsung.com>
*/
public class UpdatableListPage extends PackageListPage {
-
+ private static final String RSC_PATH_IMAGE_NEW = RESOURCE_PATH_NEW + "/02_installation_option_bg.png";
static final String RSC_PATH_IMAGE = RESOURCE_PATH + "/install_manager_graphicmotif_002.png";
static final String STRING_TITLE = "Update";
static final String STRING_SUBTITLE = "Updated components are installed.\n" +
"You can select additional components for installation as well.";
+ private Composite buttonComposite;
+
+ private AddExtraRepositoryDialog extraDialog;
+ private Button addExtraButton;
/**
* @param parent
*/
public UpdatableListPage(Composite parent, int style) {
super(parent, style, Type.UPDATE);
- setLeftImageFromResource(RSC_PATH_IMAGE);
- setTitleBounds(160, 3, 468, 20);
- setSubTitleBounds(160, 25, 468, 30);
- setCustomCompositeBounds(160, 60, 468, 334);
- setTitle(STRING_TITLE);
- setSubTitle(STRING_SUBTITLE);
- setSubTitleFont(new FontData("Dejavu Sans", 9, SWT.NONE));
- tree.setBounds(0, 0, 447, 260);
- lblRequiredSize.setBounds(300, 265, 210, 23);
+// setLeftImageFromResource(RSC_PATH_IMAGE);
+// setTitleBounds(160, 3, 468, 20);
+// setSubTitleBounds(160, 25, 468, 30);
+// setCustomCompositeBounds(160, 60, 468, 334);
+
+ setLeftImageFromResource(RSC_PATH_IMAGE_NEW);
+ disableTitleBounds();
+ disableSubtitleBounds();
+
+ setTitleLabelText(STRING_TITLE);
+
+// setTitle(STRING_TITLE);
+// setSubTitle(STRING_SUBTITLE);
+// setSubTitleFont(new FontData("Dejavu Sans", 9, SWT.NONE));
+// tree.setBounds(0, 0, 447, 260);
+// lblRequiredSize.setBounds(300, 265, 210, 23);
// lblDescriptions.setBounds(0, 265, 124, 17);
+
+ buttonComposite = new Composite(getCustomComposite(), SWT.NONE);
+ buttonComposite.setBounds(10, 31, 134, 268);
+ buttonComposite.setBackground(InstallManagerWindow.getBackgroundColor());
+ setAddRepositoryButton();
+ }
+
+ /**
+ * Set add Repository button.
+ */
+ private void setAddRepositoryButton() {
+ if (addExtraButton == null) {
+ addExtraButton = new Button(buttonComposite ,SWT.NONE | SWT.LEFT);
+ }
+
+ addExtraButton.setBounds(0, 0, 134, 34);
+ addExtraButton.setText("Extra repository");
+ addExtraButton.setBackground(InstallManagerWindow.getBackgroundColor());
+
+ addExtraButton.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ extraDialog = new AddExtraRepositoryDialog(buttonComposite.getShell(), viewController);
+ extraDialog.open();
+ loadPage(InstallManagerWindow.getInstallManagerWindow().getViewController());
+ }
+ });
}
/**
getItems().clear();
try {
- loadPackagesToTreeViewer(viewController.getInstallableMetaPackageList());
+ loadPackagesToTreeViewer(viewController.getInstallableMetaPackageList(), Type.UPDATE);
viewController.loadSdkExtension();
addExtensionPackagesToExtra(viewController.getRootMetaPackageListOfExtension());
@Override
public void mouseDown(MouseEvent e) {
System.out.println("button is pushed.");
- mainWindow.getNextButton().notifyListeners(SWT.Selection, new Event());
buttonInstall.setSelection(true);
// mainWindow.showComposite(mainWindow.getComponentSelectionPage());
selectedButton = INSTALLMANAGER_ACTION.INSTALL;
Config.status = Config.Status.INSTALL;
+ mainWindow.getNextButton().notifyListeners(SWT.Selection, new Event());
}
@Override
@Override
public void mouseDown(MouseEvent e) {
- System.out.println("button is pushed.");
- buttonUninstall.setSelection(true);
- Config.status = Config.Status.UNINSTALL;
- selectedButton = INSTALLMANAGER_ACTION.UNINSTALL;
+ System.out.println("uninstall button is pushed.");
+ if (buttonUninstall.getEnabledFlag()) {
+ buttonUninstall.setSelection(true);
+ Config.status = Config.Status.UNINSTALL;
+ selectedButton = INSTALLMANAGER_ACTION.UNINSTALL;
+ mainWindow.getNextButton().notifyListeners(SWT.Selection, new Event());
+ }
}
@Override
public void mouseDoubleClick(MouseEvent e) {
System.out.println("double click.");
- }
+ }
});
}
if (!viewController.existRemovablePackage()) {
// buttonInstall.setText("Install the new " + Config.SDK_NAME + " version.");
- buttonInstall.setBounds(26, 40, 500, 22);
+// buttonInstall.setBounds(26, 40, 500, 22);
// buttonInstall.setSelection(true);
// buttonUninstall.setSelection(false);
buttonInstall.setEnabled(true);
- buttonUninstall.setEnabled(false);
+ buttonUninstall.setEnabledFlag(false);
if (isMultiSdk) {
buttonUpdate.setSelection(false);
} else {
// buttonInstall.setText("Install or update the " + Config.SDK_NAME);
- Config.status = Config.Status.UPDATE;
+ buttonUninstall.setEnabledFlag(true);
+ Config.status = Config.Status.UNINSTALL;
}
// buttonInstall.setSelection(true);
// buttonUninstall.setSelection(false);
+ installTextLabel.setText("Update");
+ installTextLabel.setBounds(132, 197, 130, 33);
buttonInstall.setEnabled(true);
buttonUninstall.setEnabled(true);