From 45d9ed1ee13d2886fdfa9a257f7916be8b21c67a Mon Sep 17 00:00:00 2001 From: donghee yang Date: Mon, 19 Nov 2012 15:22:33 +0900 Subject: [PATCH] [Title] Added "CommonTab.java" for avoiding code dup --- .../nativeplatform/pkgmgr/ui/BuildSystemTab.java | 786 ++++----------------- .../tizen/nativeplatform/pkgmgr/ui/CommonTab.java | 579 +++++++++++++++ .../tizen/nativeplatform/pkgmgr/ui/DeviceTab.java | 752 ++++---------------- 3 files changed, 853 insertions(+), 1264 deletions(-) create mode 100644 org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/CommonTab.java diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java index 4ebb1e2..8b55622 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java @@ -1,49 +1,14 @@ package org.tizen.nativeplatform.pkgmgr.ui; -import java.io.File; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; -import java.util.ResourceBundle; import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.CheckStateChangedEvent; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.ColumnLabelProvider; -import org.eclipse.jface.viewers.ICheckStateListener; -import org.eclipse.jface.viewers.ICheckStateProvider; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.TableViewerColumn; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.MouseListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.layout.RowLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.TabFolder; -import org.eclipse.swt.widgets.TabItem; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.Text; import org.tizen.common.util.DialogUtil; import org.tizen.nativecommon.build.SmartBuildInterface; import org.tizen.nativeplatform.pkgmgr.RPMPackageCommander; @@ -54,23 +19,14 @@ import org.tizen.nativeplatform.pkgmgr.model.RepositoryProvider; import org.tizen.nativeplatform.views.model.PlatformRootstrap; -public class BuildSystemTab { +public class BuildSystemTab extends CommonTab { - private TabFolder folder = null; - private TableViewer repoViewer = null; - private CheckboxTableViewer pkgViewer = null; - private final Shell shell; private PlatformRootstrap rootstrap; private String rootstrapPath = ""; - private Combo categoryCombo; - private Text filterText; - private final String BUNDLE_NAME = BuildSystemTab.class.getPackage().getName() + ".PkgMgrUIMessages";//$NON-NLS-1$ - private final ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME); public BuildSystemTab(Shell shell, TabFolder folder, PlatformRootstrap rootstrap) { - this.shell = shell; - this.folder = folder; + super(shell, folder); this.rootstrap = rootstrap; this.rootstrapPath = SmartBuildInterface.getInstance().getPlatformRootstrapPath(rootstrap.getPath().toOSString()); } @@ -104,438 +60,176 @@ public class BuildSystemTab { public void createTab() { - createBuildsystemTab(folder); + createCommonTab(folder, + resources.getString("PkgMgr.Tab.Buildsystem") +" [" + rootstrap.getName() +"]"); } - private void createBuildsystemTab( TabFolder parent ) - { - TabItem buildsystemTab = new TabItem( parent, SWT.NULL ); - buildsystemTab.setText(resources.getString("PkgMgr.Tab.Buildsystem") +" [" + rootstrap.getName() +"]"); - - Composite composite = new Composite(folder, SWT.NONE); - buildsystemTab.setControl(composite); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - composite.setLayout(new GridLayout(1, false)); - - createRepositoryGroup( composite ); - createPackageGroup( composite ); - } - - - private void createRepositoryGroup( Composite parent ) - { - Group grpRepo = new Group(parent, SWT.NONE); - grpRepo.setText(resources.getString("PkgMgr.Frame.Respository")); - GridData repo_gd = new GridData(GridData.FILL_HORIZONTAL); - repo_gd.heightHint = 110; - grpRepo.setLayoutData(repo_gd); - grpRepo.setLayout(new GridLayout(2, false)); - - createRepositoryTable( grpRepo ); - createRepositoryButtons( grpRepo ); + protected void handleAddRepositoryButton(){ + AddRepoDialog dialog = new AddRepoDialog(shell, resources.getString("PkgMgr.Tab.Buildsystem")); + if ( dialog.open() != AddRepoDialog.OK ) { + return; + } + String name = String.format("url%d", repoViewer.getTable().getItemCount()); + String url = dialog.getRepositoryURL(); + RPMPackageCommander.addRepositoryForRootstrap(name, url, rootstrapPath); + + rootstrap.addRepositoryURL(url); } - - private void createRepositoryTable( Composite parent) - { - Composite composite = new Composite( parent, SWT.NONE ); - GridData gridData = new GridData(GridData.FILL_BOTH); - composite.setLayoutData(gridData); - composite.setLayout(new FillLayout()); - - repoViewer = new TableViewer( composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL ); - createColumnsForRepoTable( composite ); - Table reposTable = repoViewer.getTable(); - reposTable.setHeaderVisible(true); - reposTable.setLinesVisible(true); - repoViewer.setContentProvider(new ArrayContentProvider()); - repoViewer.setInput(RepositoryProvider.INSTANCE.getBuildsystemRepos()); + + protected void handleModifyRepositoryButton() { + int selectedIdx = repoViewer.getTable().getSelectionIndex(); + if ( selectedIdx == -1 ) { + DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); + return; + } + + Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); + ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Buildsystem"), + repos.getName(), repos.getUri(), false); + if ( dialog.open() != ModifyRepoDialog.OK ) { + return; + } + rootstrap.changeRepositoryURL(repos.getUri(), dialog.getRepositoryURL()); } - - private void createColumnsForRepoTable( Composite parent ) - { - String[] titles = {resources.getString("PkgMgr.Repo.Table.Column.1"), - resources.getString("PkgMgr.Repo.Table.Column.2")}; - int[] bounds = { 100, 600 }; - - TableViewerColumn colName = createTableViewerColumn( repoViewer, titles[0], bounds[0], SWT.NONE); - colName.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Repository repo = (Repository)element; - return repo.getName(); - } - }); - - TableViewerColumn colUrl = createTableViewerColumn( repoViewer, titles[1], bounds[1], SWT.NONE); - colUrl.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Repository repo = (Repository)element; - return repo.getUri(); - } - }); + + protected void handleRemoveRepositoryButton() { + int selectedIdx = repoViewer.getTable().getSelectionIndex(); + if ( selectedIdx == -1 ) { + DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); + return; + } + Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); + rootstrap.removeRepositoryURL(repos.getUri()); } - - private void createRepositoryButtons( Composite parent ) - { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - RowLayout layout = new RowLayout(SWT.VERTICAL); - layout.pack = false; - composite.setLayout(layout); - - - Button add_bt = new Button( composite, SWT.PUSH ); - add_bt.setText(resources.getString("PkgMgr.Button.AddRepo")); - add_bt.setToolTipText(resources.getString("PkgMgr.Button.AddRepo.Tooltip")); - add_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - - AddRepoDialog dialog = new AddRepoDialog(shell, resources.getString("PkgMgr.Tab.Buildsystem")); - if ( dialog.open() != AddRepoDialog.OK ) { - return; + + protected void handleRefreshRepositoryButton() { + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + monitor.beginTask(resources.getString("PkgMgr.Message.Refreshing"), -1); + RPMPackageCommander.refreshRepositoryForRootstrap(rootstrapPath); + monitor.done(); } - String name = String.format("url%d", repoViewer.getTable().getItemCount()); - String url = dialog.getRepositoryURL(); - RPMPackageCommander.addRepositoryForRootstrap(name, url, rootstrapPath); - - rootstrap.addRepositoryURL(url); - updateRepositoryInfo(); - repoViewer.refresh(); - } + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.RefreshFailed")+ + "("+e1.toString()+")"); + } + } - @Override - public void mouseUp(MouseEvent e) { - } - }); + protected void handleUpgradeRootstrapButton() { + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - Button modify_bt = new Button( composite, SWT.PUSH ); - modify_bt.setText(resources.getString("PkgMgr.Button.ModifyRepo")); - modify_bt.setToolTipText(resources.getString("PkgMgr.Button.ModifyRepo.Tooltip")); - modify_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - int selectedIdx = repoViewer.getTable().getSelectionIndex(); - if ( selectedIdx == -1 ) { - DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); - return; - } - - Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); - ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Buildsystem"), - repos.getName(), repos.getUri(), false); - if ( dialog.open() != ModifyRepoDialog.OK ) { - return; + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Upgrade"), -1); + RPMPackageCommander.DistUpgradeRootstrap(rootstrapPath); + monitor.done(); } - rootstrap.changeRepositoryURL(repos.getUri(), dialog.getRepositoryURL()); - updateRepositoryInfo(); - repoViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - - Button remove_bt = new Button( composite, SWT.PUSH ); - remove_bt.setText(resources.getString("PkgMgr.Button.RemoveRepo")); - remove_bt.setToolTipText(resources.getString("PkgMgr.Button.RemoveRepo.Tooltip")); - remove_bt.addMouseListener(new MouseListener() { - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - int selectedIdx = repoViewer.getTable().getSelectionIndex(); - if ( selectedIdx == -1 ) { - DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); - return; - } - Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); - rootstrap.removeRepositoryURL(repos.getUri()); - updateRepositoryInfo(); - repoViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.UpgradeFailed")+ + "("+e1.toString()+")"); + } } - private void createPackageGroup( Composite parent ) - { - Group grpPkg = new Group(parent, SWT.NONE); - grpPkg.setText(resources.getString("PkgMgr.Frame.Package")); - GridData pkgs_gd = new GridData(GridData.FILL_BOTH|GridData.GRAB_VERTICAL); - grpPkg.setLayoutData(pkgs_gd); - grpPkg.setLayout(new GridLayout(1, false)); - - createPackageButtonsAndFilter( grpPkg ); - createPackageTable( grpPkg ); - } - - - private void createPackageButtonsAndFilter( Composite parent ) { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - composite.setLayout(new GridLayout(2, false)); + protected void handleInstallPackageButton() { + final CopyOnWriteArrayList selectedList = + PackageProvider.INSTANCE.getSelectedBuildsystemPkgs(false); + + if(selectedList.isEmpty()) { + DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); + return; + } - createPackageButtons( composite ); - createPackageFilter( composite ); + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Installing.Package"), -1); + RPMPackageCommander.installRemotePkgForRootstrap(selectedList, rootstrapPath); + monitor.done(); + } + }); + } + catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.InstallFailed")+ + "("+e1.toString()+")"); + } } - private void createPackageButtons( Composite parent ) - { - Composite composite = new Composite( parent, SWT.NONE ); - RowLayout layout = new RowLayout(SWT.HORIZONTAL); - layout.pack = false; - composite.setLayout(layout); - - Button refresh_bt = new Button( composite, SWT.PUSH ); - refresh_bt.setText(resources.getString("PkgMgr.Button.RefreshRepo")); - refresh_bt.setToolTipText(resources.getString("PkgMgr.Button.RefreshRepo.Tooltip")); - refresh_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - monitor.beginTask(resources.getString("PkgMgr.Message.Refreshing"), -1); - RPMPackageCommander.refreshRepositoryForRootstrap(rootstrapPath); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.RefreshFailed")+ - "("+e1.toString()+")"); - } - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - - - Button upgrade_bt = new Button( composite, SWT.PUSH ); - upgrade_bt.setText(resources.getString("PkgMgr.Button.Upgrade")); - upgrade_bt.setToolTipText(resources.getString("PkgMgr.Button.Upgrade.Tooltip")); - upgrade_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Upgrade"), -1); - RPMPackageCommander.DistUpgradeRootstrap(rootstrapPath); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.UpgradeFailed")+ - "("+e1.toString()+")"); - } - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - - Button install_bt = new Button( composite, SWT.PUSH ); - install_bt.setText(resources.getString("PkgMgr.Button.Install")); - install_bt.setToolTipText(resources.getString("PkgMgr.Button.Install.Tooltip")); - install_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - final CopyOnWriteArrayList selectedList = - PackageProvider.INSTANCE.getSelectedBuildsystemPkgs(false); - - if(selectedList.isEmpty()) { - DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); - return; - } - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Installing.Package"), -1); - RPMPackageCommander.installRemotePkgForRootstrap(selectedList, rootstrapPath); - monitor.done(); - } - }); - } - catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.InstallFailed")+ - "("+e1.toString()+")"); - } - - // update package list - updatePackageInfo(null); - pkgViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - - }); - - Button installLocal_bt = new Button( composite, SWT.PUSH ); - installLocal_bt.setText(resources.getString("PkgMgr.Button.InstallLocal")); - installLocal_bt.setToolTipText(resources.getString("PkgMgr.Button.InstallLocal.Tooltip")); - installLocal_bt.addMouseListener(new MouseListener() { - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - FileDialog fd = new FileDialog( shell, SWT.OPEN|SWT.MULTI); - fd.setText(resources.getString("FileDlg.Title")); - String[] filterExt = { resources.getString("FileDlg.Filter.Ext") }; - fd.setFilterExtensions(filterExt); - String firstFilePath = fd.open(); - if ( firstFilePath == null ) { return; } - - String[] fileNames = fd.getFileNames(); - final ArrayList selectedFiles = new ArrayList(); - for( String fileName : fileNames ) { - selectedFiles.add(new File(firstFilePath).getParent()+"/"+fileName); - } - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Installing.LocalPackage"), -1); - RPMPackageCommander.InstallLocalPkgToRootstrap(selectedFiles, rootstrapPath); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.InstallFailed")+ - "("+e1.toString()+")"); - } - - // update package list - updatePackageInfo(selectedFiles); - pkgViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - - Button removeBt = new Button( composite, SWT.PUSH ); - removeBt.setText(resources.getString("PkgMgr.Button.Uninstall")); - removeBt.setToolTipText(resources.getString("PkgMgr.Button.Uninstall.Tooltip")); - removeBt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - final CopyOnWriteArrayList selectedList = - PackageProvider.INSTANCE.getSelectedBuildsystemPkgs(true); - if(selectedList.isEmpty()) { - DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); - return; + protected void handleInstallLocalPackageButton( final ArrayList selectedFiles ) { + + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Installing.LocalPackage"), -1); + RPMPackageCommander.InstallLocalPkgToRootstrap(selectedFiles, rootstrapPath); + monitor.done(); } + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.InstallFailed")+ + "("+e1.toString()+")"); + } + } + + + protected void handleRemovePackageButton() { + final CopyOnWriteArrayList selectedList = + PackageProvider.INSTANCE.getSelectedBuildsystemPkgs(true); + if(selectedList.isEmpty()) { + DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); + return; + } - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Uninstalling.Package"), -1); - RPMPackageCommander.uninstallPkgFromRootstrap(selectedList, rootstrapPath); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.UninstallFailed")+ - "("+e1.toString()+")"); + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Uninstalling.Package"), -1); + RPMPackageCommander.uninstallPkgFromRootstrap(selectedList, rootstrapPath); + monitor.done(); } - - // update package list - updatePackageInfo(null); - pkgViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.UninstallFailed")+ + "("+e1.toString()+")"); + } } - private void updatePackageInfo(ArrayList localPackageFileList ) { + protected void updatePackageInfo(ArrayList localPackageFileList ) { ArrayList fullList = RPMPackageCommander.getPackageListForRootstrap(rootstrapPath); ArrayList removeList = new ArrayList(); for( Package pkg: PackageProvider.INSTANCE.getBuildsystemPkgs()) { @@ -594,200 +288,10 @@ public class BuildSystemTab { } - private void createPackageFilter( Composite parent ) { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL|GridData.GRAB_HORIZONTAL)); - composite.setLayout(new GridLayout(3,false)); - - Label filterTextLabel = new Label(composite, SWT.NONE); - filterTextLabel.setText(resources.getString("PkgMgr.Label.Filter")); - - categoryCombo = new Combo(composite, SWT.READ_ONLY); - String[] items = {"All","Installed","Upgradable"}; - categoryCombo.setItems(items); - categoryCombo.addSelectionListener( new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - pkgViewer.refresh(); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // do nothing - } - }); - categoryCombo.select(0); - filterText = new Text( composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH); - GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL); - filterText.setLayoutData(gridData); - filterText.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - pkgViewer.refresh(); - } - }); - } - - private void createPackageTable( Composite parent ) - { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - composite.setLayout(new FillLayout()); - pkgViewer = CheckboxTableViewer.newCheckList( composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CHECK ); - createColumns( composite ); - Table packageTable = pkgViewer.getTable(); - packageTable.addListener( SWT.Selection, new Listener(){ - - @Override - public void handleEvent(Event event) { - if( event.detail == SWT.CHECK ) - { - Package pkg = (Package)event.item.getData(); - pkg.setCheckColumn( !pkg.getCheckColumn() ); - } - } - }); - - packageTable.setHeaderVisible(true); - packageTable.setLinesVisible(true); - - pkgViewer.setContentProvider(new ArrayContentProvider()); - pkgViewer.setCheckStateProvider(new ICheckStateProvider() { - - @Override - public boolean isChecked(Object element) { - Package pkg = (Package) element; - return pkg.isChecked(); - } - - @Override - public boolean isGrayed(Object element) { - return false; - } - }); - pkgViewer.addFilter( new ViewerFilter() { - - @Override - public boolean select(Viewer viewer, Object parentElement, - Object element) { - Package pkg = (Package) element; - if ( categoryCombo != null ) { - if ( categoryCombo.getText().equals("Installed") && - pkg.getInstalledVersion().isEmpty() ) { - return false; - } - if ( categoryCombo.getText().equals("Upgradable") && - ( pkg.getInstalledVersion().isEmpty() || - pkg.getNewVersion().isEmpty() || - RPMPackageCommander.compareVersion(pkg.getInstalledVersion(),pkg.getNewVersion()) >= 0 )) { - return false; - } - } - if ( filterText != null && !pkg.getName().contains(filterText.getText()) ) { - return false; - } - return true; - } - - }); - pkgViewer.addCheckStateListener( new ICheckStateListener() { - - @Override - public void checkStateChanged(CheckStateChangedEvent event) { - Package pkg = (Package)event.getElement(); - pkg.setChecked(true); - } - }); - pkgViewer.setInput(PackageProvider.INSTANCE.getBuildsystemPkgs()); - } - - - - private TableViewerColumn createTableViewerColumn(TableViewer viewer, String title, int bound, int Style) { - - final TableViewerColumn viewerColumn = new TableViewerColumn( viewer, Style); - final TableColumn column = viewerColumn.getColumn(); - column.addSelectionListener(new PackageTableSelectionAdapter(pkgViewer)); - column.setText(title); - column.setWidth(bound); - column.setResizable(true); - column.setMoveable(true); - return viewerColumn; - } - - private void createColumns( Composite parent ) - { - String[] titles = {"S", "Package Name", "Installed Version", "New Version", "Arch", "Description"}; - int[] bounds = { 24, 200, 150, 150, 60, 150}; - - TableViewerColumn colSelection = createTableViewerColumn( pkgViewer, titles[0], bounds[0], SWT.NONE); - colSelection.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - return ""; - } - }); - - TableViewerColumn colPackage = createTableViewerColumn( pkgViewer, titles[1], bounds[1], SWT.NONE); - colPackage.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - if ( pkg.isNewlyChanged() ) { - return "*"+pkg.getName(); - } - else { - return pkg.getName(); - } - } - }); - - TableViewerColumn colInsVer = createTableViewerColumn( pkgViewer, titles[2], bounds[2], SWT.NONE); - colInsVer.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - String installedVer = pkg.getInstalledVersion(); - return installedVer; - } - }); - - - TableViewerColumn colNewVer = createTableViewerColumn( pkgViewer, titles[3], bounds[3], SWT.NONE); - - colNewVer.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - String newVer = pkg.getNewVersion(); - return newVer; - } - }); - - TableViewerColumn colArch = createTableViewerColumn( pkgViewer, titles[4], bounds[4], SWT.NONE); - - colArch.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - String arch = pkg.getArch(); - return arch; - } - }); - - TableViewerColumn colDescription = createTableViewerColumn( pkgViewer, titles[5], bounds[5], SWT.NONE); - colDescription.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - return ""; - } - }); - } } diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/CommonTab.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/CommonTab.java new file mode 100644 index 0000000..b4e401e --- /dev/null +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/CommonTab.java @@ -0,0 +1,579 @@ +package org.tizen.nativeplatform.pkgmgr.ui; + +import java.io.File; +import java.util.ArrayList; +import java.util.ResourceBundle; + +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.CheckStateChangedEvent; +import org.eclipse.jface.viewers.CheckboxTableViewer; +import org.eclipse.jface.viewers.ColumnLabelProvider; +import org.eclipse.jface.viewers.ICheckStateListener; +import org.eclipse.jface.viewers.ICheckStateProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TableViewerColumn; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.Text; +import org.tizen.nativeplatform.pkgmgr.RPMPackageCommander; +import org.tizen.nativeplatform.pkgmgr.model.Package; +import org.tizen.nativeplatform.pkgmgr.model.PackageProvider; +import org.tizen.nativeplatform.pkgmgr.model.Repository; +import org.tizen.nativeplatform.pkgmgr.model.RepositoryProvider; + +abstract public class CommonTab { + + protected TableViewer repoViewer = null; + protected CheckboxTableViewer pkgViewer = null; + protected Combo categoryCombo; + protected Text filterText; + + protected final Shell shell; + protected TabFolder folder = null; + protected final String BUNDLE_NAME = BuildSystemTab.class.getPackage().getName() + ".PkgMgrUIMessages";//$NON-NLS-1$ + protected final ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME); + + + public CommonTab(Shell shell, TabFolder folder) { + this.shell = shell; + this.folder = folder; + } + + abstract public void updateRepositoryInfo(); + + protected void createCommonTab( TabFolder parent, String title ) + { + TabItem buildsystemTab = new TabItem( parent, SWT.NULL ); + buildsystemTab.setText(title); + + Composite composite = new Composite(folder, SWT.NONE); + buildsystemTab.setControl(composite); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + composite.setLayout(new GridLayout(1, false)); + + createRepositoryGroup( composite ); + createPackageGroup( composite ); + } + + + private void createRepositoryGroup( Composite parent ) + { + Group grpRepo = new Group(parent, SWT.NONE); + grpRepo.setText(resources.getString("PkgMgr.Frame.Respository")); + GridData repo_gd = new GridData(GridData.FILL_HORIZONTAL); + repo_gd.heightHint = 110; + grpRepo.setLayoutData(repo_gd); + grpRepo.setLayout(new GridLayout(2, false)); + + createRepositoryTable( grpRepo ); + createRepositoryButtons( grpRepo ); + } + + + private void createRepositoryTable( Composite parent) + { + Composite composite = new Composite( parent, SWT.NONE ); + GridData gridData = new GridData(GridData.FILL_BOTH); + composite.setLayoutData(gridData); + composite.setLayout(new FillLayout()); + + repoViewer = new TableViewer( composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL ); + createColumnsForRepoTable( composite ); + Table reposTable = repoViewer.getTable(); + reposTable.setHeaderVisible(true); + reposTable.setLinesVisible(true); + repoViewer.setContentProvider(new ArrayContentProvider()); + repoViewer.setInput(RepositoryProvider.INSTANCE.getBuildsystemRepos()); + } + + + private void createColumnsForRepoTable( Composite parent ) + { + String[] titles = {resources.getString("PkgMgr.Repo.Table.Column.1"), + resources.getString("PkgMgr.Repo.Table.Column.2")}; + int[] bounds = { 100, 600 }; + + TableViewerColumn colName = createTableViewerColumn( repoViewer, titles[0], bounds[0], SWT.NONE); + colName.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + Repository repo = (Repository)element; + return repo.getName(); + } + }); + + TableViewerColumn colUrl = createTableViewerColumn( repoViewer, titles[1], bounds[1], SWT.NONE); + colUrl.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + Repository repo = (Repository)element; + return repo.getUri(); + } + }); + } + + + private TableViewerColumn createTableViewerColumn(TableViewer viewer, String title, int bound, int Style) { + + final TableViewerColumn viewerColumn = new TableViewerColumn( viewer, Style); + final TableColumn column = viewerColumn.getColumn(); + column.addSelectionListener(new PackageTableSelectionAdapter(pkgViewer)); + column.setText(title); + column.setWidth(bound); + column.setResizable(true); + column.setMoveable(true); + return viewerColumn; + } + + + private void createRepositoryButtons( Composite parent ) + { + Composite composite = new Composite( parent, SWT.NONE ); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + RowLayout layout = new RowLayout(SWT.VERTICAL); + layout.pack = false; + composite.setLayout(layout); + + + Button add_bt = new Button( composite, SWT.PUSH ); + add_bt.setText(resources.getString("PkgMgr.Button.AddRepo")); + add_bt.setToolTipText(resources.getString("PkgMgr.Button.AddRepo.Tooltip")); + add_bt.addMouseListener(new MouseListener(){ + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleAddRepositoryButton(); + updateRepositoryInfo(); + repoViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + + }); + + Button modify_bt = new Button( composite, SWT.PUSH ); + modify_bt.setText(resources.getString("PkgMgr.Button.ModifyRepo")); + modify_bt.setToolTipText(resources.getString("PkgMgr.Button.ModifyRepo.Tooltip")); + modify_bt.addMouseListener(new MouseListener(){ + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleModifyRepositoryButton(); + updateRepositoryInfo(); + repoViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + }); + + Button remove_bt = new Button( composite, SWT.PUSH ); + remove_bt.setText(resources.getString("PkgMgr.Button.RemoveRepo")); + remove_bt.setToolTipText(resources.getString("PkgMgr.Button.RemoveRepo.Tooltip")); + remove_bt.addMouseListener(new MouseListener() { + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleRemoveRepositoryButton(); + updateRepositoryInfo(); + repoViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + }); + } + + + abstract protected void handleAddRepositoryButton(); + abstract protected void handleModifyRepositoryButton(); + abstract protected void handleRemoveRepositoryButton(); + + + protected void createPackageGroup( Composite parent ) + { + Group grpPkg = new Group(parent, SWT.NONE); + grpPkg.setText(resources.getString("PkgMgr.Frame.Package")); + GridData pkgs_gd = new GridData(GridData.FILL_BOTH|GridData.GRAB_VERTICAL); + grpPkg.setLayoutData(pkgs_gd); + grpPkg.setLayout(new GridLayout(1, false)); + + createPackageButtonsAndFilter( grpPkg ); + createPackageTable( grpPkg ); + } + + + protected void createPackageButtonsAndFilter( Composite parent ) { + Composite composite = new Composite( parent, SWT.NONE ); + composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + composite.setLayout(new GridLayout(2, false)); + + createPackageButtons( composite ); + createPackageFilter( composite ); + } + + + protected void createPackageButtons( Composite parent ) + { + Composite composite = new Composite( parent, SWT.NONE ); + RowLayout layout = new RowLayout(SWT.HORIZONTAL); + layout.pack = false; + composite.setLayout(layout); + + Button refresh_bt = new Button( composite, SWT.PUSH ); + refresh_bt.setText(resources.getString("PkgMgr.Button.RefreshRepo")); + refresh_bt.setToolTipText(resources.getString("PkgMgr.Button.RefreshRepo.Tooltip")); + refresh_bt.addMouseListener(new MouseListener(){ + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleRefreshRepositoryButton(); + updatePackageInfo(null); + pkgViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + }); + + + Button upgrade_bt = new Button( composite, SWT.PUSH ); + upgrade_bt.setText(resources.getString("PkgMgr.Button.Upgrade")); + upgrade_bt.setToolTipText(resources.getString("PkgMgr.Button.Upgrade.Tooltip")); + upgrade_bt.addMouseListener(new MouseListener(){ + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleUpgradeRootstrapButton(); + updatePackageInfo(null); + pkgViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + }); + + Button install_bt = new Button( composite, SWT.PUSH ); + install_bt.setText(resources.getString("PkgMgr.Button.Install")); + install_bt.setToolTipText(resources.getString("PkgMgr.Button.Install.Tooltip")); + install_bt.addMouseListener(new MouseListener(){ + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleInstallPackageButton(); + updatePackageInfo(null); + pkgViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + + }); + + Button installLocal_bt = new Button( composite, SWT.PUSH ); + installLocal_bt.setText(resources.getString("PkgMgr.Button.InstallLocal")); + installLocal_bt.setToolTipText(resources.getString("PkgMgr.Button.InstallLocal.Tooltip")); + installLocal_bt.addMouseListener(new MouseListener() { + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + FileDialog fd = new FileDialog( shell, SWT.OPEN|SWT.MULTI); + fd.setText(resources.getString("FileDlg.Title")); + String[] filterExt = { resources.getString("FileDlg.Filter.Ext") }; + fd.setFilterExtensions(filterExt); + String firstFilePath = fd.open(); + if ( firstFilePath == null ) { return; } + + String[] fileNames = fd.getFileNames(); + final ArrayList selectedFiles = new ArrayList(); + for( String fileName : fileNames ) { + selectedFiles.add(new File(firstFilePath).getParent()+"/"+fileName); + } + + handleInstallLocalPackageButton(selectedFiles); + updatePackageInfo(selectedFiles); + pkgViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + }); + + Button removeBt = new Button( composite, SWT.PUSH ); + removeBt.setText(resources.getString("PkgMgr.Button.Uninstall")); + removeBt.setToolTipText(resources.getString("PkgMgr.Button.Uninstall.Tooltip")); + removeBt.addMouseListener(new MouseListener(){ + + @Override + public void mouseDoubleClick(MouseEvent e) { + } + + @Override + public void mouseDown(MouseEvent e) { + handleRemovePackageButton(); + updatePackageInfo(null); + pkgViewer.refresh(); + } + + @Override + public void mouseUp(MouseEvent e) { + } + }); + } + + + abstract protected void handleRefreshRepositoryButton(); + abstract protected void handleUpgradeRootstrapButton(); + abstract protected void handleInstallPackageButton(); + abstract protected void handleInstallLocalPackageButton(final ArrayList selectedFiles); + abstract protected void handleRemovePackageButton(); + + + abstract protected void updatePackageInfo(ArrayList localPackageFileList); + + + private void createPackageFilter( Composite parent ) { + Composite composite = new Composite( parent, SWT.NONE ); + composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL|GridData.GRAB_HORIZONTAL)); + composite.setLayout(new GridLayout(3,false)); + + Label filterTextLabel = new Label(composite, SWT.NONE); + filterTextLabel.setText(resources.getString("PkgMgr.Label.Filter")); + + categoryCombo = new Combo(composite, SWT.READ_ONLY); + String[] items = {"All","Installed","Upgradable"}; + categoryCombo.setItems(items); + categoryCombo.addSelectionListener( new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + pkgViewer.refresh(); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // do nothing + } + }); + categoryCombo.select(0); + + + filterText = new Text( composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH); + GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL); + filterText.setLayoutData(gridData); + filterText.addModifyListener(new ModifyListener() { + + @Override + public void modifyText(ModifyEvent e) { + pkgViewer.refresh(); + } + }); + } + + + + private void createPackageTable( Composite parent ) + { + Composite composite = new Composite( parent, SWT.NONE ); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + composite.setLayout(new FillLayout()); + + pkgViewer = CheckboxTableViewer.newCheckList( composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CHECK ); + createPackageTableColumns( composite ); + Table packageTable = pkgViewer.getTable(); + packageTable.addListener( SWT.Selection, new Listener(){ + + @Override + public void handleEvent(Event event) { + if( event.detail == SWT.CHECK ) + { + Package pkg = (Package)event.item.getData(); + pkg.setCheckColumn( !pkg.getCheckColumn() ); + } + } + }); + + packageTable.setHeaderVisible(true); + packageTable.setLinesVisible(true); + + pkgViewer.setContentProvider(new ArrayContentProvider()); + pkgViewer.setCheckStateProvider(new ICheckStateProvider() { + + @Override + public boolean isChecked(Object element) { + Package pkg = (Package) element; + return pkg.isChecked(); + } + + @Override + public boolean isGrayed(Object element) { + return false; + } + }); + pkgViewer.addFilter( new ViewerFilter() { + + @Override + public boolean select(Viewer viewer, Object parentElement, + Object element) { + Package pkg = (Package) element; + if ( categoryCombo != null ) { + if ( categoryCombo.getText().equals("Installed") && + pkg.getInstalledVersion().isEmpty() ) { + return false; + } + if ( categoryCombo.getText().equals("Upgradable") && + ( pkg.getInstalledVersion().isEmpty() || + pkg.getNewVersion().isEmpty() || + RPMPackageCommander.compareVersion(pkg.getInstalledVersion(),pkg.getNewVersion()) >= 0 )) { + return false; + } + } + if ( filterText != null && !pkg.getName().contains(filterText.getText()) ) { + return false; + } + return true; + } + + }); + pkgViewer.addCheckStateListener( new ICheckStateListener() { + + @Override + public void checkStateChanged(CheckStateChangedEvent event) { + Package pkg = (Package)event.getElement(); + pkg.setChecked(true); + } + }); + pkgViewer.setInput(PackageProvider.INSTANCE.getBuildsystemPkgs()); + } + + + private void createPackageTableColumns( Composite parent ) + { + String[] titles = {"S", "Package Name", "Installed Version", "New Version", "Arch", "Description"}; + int[] bounds = { 24, 200, 150, 150, 60, 150}; + + TableViewerColumn colSelection = createTableViewerColumn( pkgViewer, titles[0], bounds[0], SWT.NONE); + colSelection.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + return ""; + } + }); + + TableViewerColumn colPackage = createTableViewerColumn( pkgViewer, titles[1], bounds[1], SWT.NONE); + colPackage.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + Package pkg = (Package)element; + if ( pkg.isNewlyChanged() ) { + return "*"+pkg.getName(); + } + else { + return pkg.getName(); + } + } + }); + + TableViewerColumn colInsVer = createTableViewerColumn( pkgViewer, titles[2], bounds[2], SWT.NONE); + colInsVer.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + Package pkg = (Package)element; + String installedVer = pkg.getInstalledVersion(); + return installedVer; + } + }); + + + TableViewerColumn colNewVer = createTableViewerColumn( pkgViewer, titles[3], bounds[3], SWT.NONE); + + colNewVer.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + Package pkg = (Package)element; + String newVer = pkg.getNewVersion(); + return newVer; + } + }); + + TableViewerColumn colArch = createTableViewerColumn( pkgViewer, titles[4], bounds[4], SWT.NONE); + + colArch.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + Package pkg = (Package)element; + String arch = pkg.getArch(); + return arch; + } + }); + + TableViewerColumn colDescription = createTableViewerColumn( pkgViewer, titles[5], bounds[5], SWT.NONE); + colDescription.setLabelProvider(new ColumnLabelProvider() { + @Override + public String getText(Object element) { + return ""; + } + }); + } + +} diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/DeviceTab.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/DeviceTab.java index 41094ea..5b871f6 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/DeviceTab.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/DeviceTab.java @@ -1,51 +1,16 @@ package org.tizen.nativeplatform.pkgmgr.ui; -import java.io.File; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; -import java.util.ResourceBundle; import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.CheckStateChangedEvent; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.ColumnLabelProvider; -import org.eclipse.jface.viewers.ICheckStateListener; -import org.eclipse.jface.viewers.ICheckStateProvider; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.TableViewerColumn; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.MouseListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.layout.RowLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.TabFolder; -import org.eclipse.swt.widgets.TabItem; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.Text; import org.tizen.common.util.DialogUtil; import org.tizen.nativeplatform.pkgmgr.RPMPackageCommander; import org.tizen.nativeplatform.pkgmgr.model.Package; @@ -55,32 +20,16 @@ import org.tizen.nativeplatform.pkgmgr.model.RepositoryProvider; import org.tizen.sdblib.IDevice; -public class DeviceTab { - - private final Shell shell; - private TabFolder folder = null; - - private TableViewer repoViewer = null; - private Combo categoryCombo; - private Text filterText; - private CheckboxTableViewer pkgViewer = null; +public class DeviceTab extends CommonTab{ private final IDevice device; - private final String BUNDLE_NAME = DeviceTab.class.getPackage().getName() + ".PkgMgrUIMessages";//$NON-NLS-1$ - private final ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME); public DeviceTab(Shell shell, TabFolder folder, IDevice dev) { - this.shell = shell; - this.folder = folder; + super(shell, folder); this.device = dev; } - public void createTab() { - createDeivceTab(folder); - } - - public void updateRepositoryInfo() { initializeRepositoryInfo(device); } @@ -106,404 +55,159 @@ public class DeviceTab { } - - private void createDeivceTab( TabFolder parent ) - { - TabItem deviceTab = new TabItem( parent, SWT.NULL ); - deviceTab.setText(resources.getString("PkgMgr.Tab.Device")+" ["+device.getSerialNumber()+"]"); - - Composite composite = new Composite(folder, SWT.NONE); - deviceTab.setControl(composite); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - composite.setLayout(new GridLayout(1, false)); - - createRepositoryGroup( composite ); - createPackageGroup( composite ); + public void createTab() { + createCommonTab(folder, + resources.getString("PkgMgr.Tab.Device")+" ["+device.getSerialNumber()+"]"); } - - private void createRepositoryGroup( Composite parent ) - { - Group grpRepo = new Group(parent, SWT.NONE); - grpRepo.setText(resources.getString("PkgMgr.Frame.Respository")); - GridData repo_gd = new GridData(GridData.FILL_HORIZONTAL); - repo_gd.heightHint = 110; - grpRepo.setLayoutData(repo_gd); - grpRepo.setLayout(new GridLayout(2, false)); - createRepositoryTable( grpRepo ); - createRepositoryButtons( grpRepo ); + protected void handleAddRepositoryButton(){ + ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Device")); + if ( dialog.open() != ModifyRepoDialog.OK ) { + return; + } + String name = dialog.getRepositoryName(); + String url = dialog.getRepositoryURL(); + RPMPackageCommander.addRepositoryForDevice(name, url, device); } - - private void createRepositoryTable( Composite parent) - { - Composite composite = new Composite( parent, SWT.NONE ); - GridData gridData = new GridData(GridData.FILL_BOTH); - composite.setLayoutData(gridData); - composite.setLayout(new FillLayout()); - - repoViewer = new TableViewer( composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL ); - createColumnsForRepoTable( composite ); - Table reposTable = repoViewer.getTable(); - reposTable.setHeaderVisible(true); - reposTable.setLinesVisible(true); - repoViewer.setContentProvider(new ArrayContentProvider()); - repoViewer.setInput(RepositoryProvider.INSTANCE.getDeviceRepos()); + + protected void handleModifyRepositoryButton() { + int selectedIdx = repoViewer.getTable().getSelectionIndex(); + if ( selectedIdx == -1 ) { + DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); + return; + } + + Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); + ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Device"), + repos.getName(), repos.getUri(), true); + if ( dialog.open() != ModifyRepoDialog.OK ) { + return; + } + RPMPackageCommander.removeRepositoryForDevice(repos.getName(), device); + RPMPackageCommander.addRepositoryForDevice(dialog.getRepositoryName(), dialog.getRepositoryURL(), device); } - - private void createColumnsForRepoTable( Composite parent ) - { - String[] titles = {resources.getString("PkgMgr.Repo.Table.Column.1"), - resources.getString("PkgMgr.Repo.Table.Column.2")}; - int[] bounds = { 100, 600 }; - - TableViewerColumn colName = createTableViewerColumn( repoViewer, titles[0], bounds[0], SWT.NONE); - colName.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Repository repo = (Repository)element; - return repo.getName(); - } - }); - - TableViewerColumn colUrl = createTableViewerColumn( repoViewer, titles[1], bounds[1], SWT.NONE); - colUrl.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Repository repo = (Repository)element; - return repo.getUri(); - } - }); + + protected void handleRemoveRepositoryButton() { + int selectedIdx = repoViewer.getTable().getSelectionIndex(); + if ( selectedIdx == -1 ) { + DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); + return; + } + Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); + RPMPackageCommander.removeRepositoryForDevice(repos.getName(), device); } - private void createRepositoryButtons( Composite parent ) - { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - RowLayout layout = new RowLayout(SWT.VERTICAL); - layout.pack = false; - composite.setLayout(layout); - - - Button add_bt = new Button( composite, SWT.PUSH ); - add_bt.setText(resources.getString("PkgMgr.Button.AddRepo")); - add_bt.setToolTipText(resources.getString("PkgMgr.Button.AddRepo.Tooltip")); - add_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - - ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Device")); - if ( dialog.open() != ModifyRepoDialog.OK ) { - return; + protected void handleRefreshRepositoryButton() { + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + monitor.beginTask(resources.getString("PkgMgr.Message.Refreshing"), -1); + RPMPackageCommander.refreshRepositoryForDevice(device); + monitor.done(); } - String name = dialog.getRepositoryName(); - String url = dialog.getRepositoryURL(); - RPMPackageCommander.addRepositoryForDevice(name, url, device); - - updateRepositoryInfo(); - repoViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - - }); - - Button modify_bt = new Button( composite, SWT.PUSH ); - modify_bt.setText(resources.getString("PkgMgr.Button.ModifyRepo")); - modify_bt.setToolTipText(resources.getString("PkgMgr.Button.ModifyRepo.Tooltip")); - modify_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - int selectedIdx = repoViewer.getTable().getSelectionIndex(); - if ( selectedIdx == -1 ) { - DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); - return; - } - - Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); - ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Device"), - repos.getName(), repos.getUri(), true); - if ( dialog.open() != ModifyRepoDialog.OK ) { - return; - } - RPMPackageCommander.removeRepositoryForDevice(repos.getName(), device); - RPMPackageCommander.addRepositoryForDevice(dialog.getRepositoryName(), dialog.getRepositoryURL(), device); - updateRepositoryInfo(); - repoViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - - - Button remove_bt = new Button( composite, SWT.PUSH ); - remove_bt.setText(resources.getString("PkgMgr.Button.RemoveRepo")); - remove_bt.setToolTipText(resources.getString("PkgMgr.Button.RemoveRepo.Tooltip")); - remove_bt.addMouseListener(new MouseListener() { - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - int selectedIdx = repoViewer.getTable().getSelectionIndex(); - if ( selectedIdx == -1 ) { - DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage")); - return; - } - Repository repos = (Repository)repoViewer.getTable().getItem(selectedIdx).getData(); - RPMPackageCommander.removeRepositoryForDevice(repos.getName(), device); - updateRepositoryInfo(); - repoViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.RefreshFailed")+ + "("+e1.toString()+")"); + } } - private void createPackageGroup( Composite parent ) - { - Group grpPkg = new Group(parent, SWT.NONE); - grpPkg.setText(resources.getString("PkgMgr.Frame.Package")); - GridData pkgs_gd = new GridData(GridData.FILL_BOTH|GridData.GRAB_VERTICAL); - grpPkg.setLayoutData(pkgs_gd); - grpPkg.setLayout(new GridLayout(1, false)); - - createPackageButtonsAndFilter( grpPkg ); - createPackageTable( grpPkg ); - } - - - private void createPackageButtonsAndFilter( Composite parent ) { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - composite.setLayout(new GridLayout(2, false)); - - createPackageButtons( composite ); - createPackageFilter( composite ); + protected void handleUpgradeRootstrapButton() { } - private void createPackageButtons( Composite parent ) - { - Composite composite = new Composite( parent, SWT.NONE ); - RowLayout layout = new RowLayout(SWT.HORIZONTAL); - layout.pack = false; - composite.setLayout(layout); - - Button refresh_bt = new Button( composite, SWT.PUSH ); - refresh_bt.setText(resources.getString("PkgMgr.Button.RefreshRepo")); - refresh_bt.setToolTipText(resources.getString("PkgMgr.Button.RefreshRepo.Tooltip")); - refresh_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - monitor.beginTask(resources.getString("PkgMgr.Message.Refreshing"), -1); - RPMPackageCommander.refreshRepositoryForDevice(device); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.RefreshFailed")+ - "("+e1.toString()+")"); - } - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - + protected void handleInstallPackageButton() { + final CopyOnWriteArrayList selectedList = + PackageProvider.INSTANCE.getSelectedDevicePkgs(false); - Button upgrade_bt = new Button( composite, SWT.PUSH ); - upgrade_bt.setText(resources.getString("PkgMgr.Button.Upgrade")); - upgrade_bt.setToolTipText(resources.getString("PkgMgr.Button.Upgrade.Tooltip")); - upgrade_bt.setEnabled(false); - - Button install_bt = new Button( composite, SWT.PUSH ); - install_bt.setText(resources.getString("PkgMgr.Button.Install")); - install_bt.setToolTipText(resources.getString("PkgMgr.Button.Install.Tooltip")); - install_bt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - final CopyOnWriteArrayList selectedList = - PackageProvider.INSTANCE.getSelectedDevicePkgs(false); - - if(selectedList.isEmpty()) { - DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); - return; - } - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Installing.Package"), -1); - RPMPackageCommander.installRemotePkgForDevice(selectedList, device); - monitor.done(); - } - }); - } - catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.InstallFailed")+ - "("+e1.toString()+")"); - } - - // update package list - updatePackageInfo(null); - pkgViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - - }); + if(selectedList.isEmpty()) { + DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); + return; + } - Button installLocal_bt = new Button( composite, SWT.PUSH ); - installLocal_bt.setText(resources.getString("PkgMgr.Button.InstallLocal")); - installLocal_bt.setToolTipText(resources.getString("PkgMgr.Button.InstallLocal.Tooltip")); - installLocal_bt.addMouseListener(new MouseListener() { - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - FileDialog fd = new FileDialog( shell, SWT.OPEN|SWT.MULTI); - fd.setText(resources.getString("FileDlg.Title")); - String[] filterExt = { resources.getString("FileDlg.Filter.Ext") }; - fd.setFilterExtensions(filterExt); - String firstFilePath = fd.open(); - if ( firstFilePath == null ) { return; } - - String[] fileNames = fd.getFileNames(); - final ArrayList selectedFiles = new ArrayList(); - for( String fileName : fileNames ) { - selectedFiles.add(new File(firstFilePath).getParent()+"/"+fileName); - } - - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Installing.LocalPackage"), -1); - RPMPackageCommander.InstallLocalPkgToDevice(selectedFiles, device); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.InstallFailed")+ - "("+e1.toString()+")"); + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Installing.Package"), -1); + RPMPackageCommander.installRemotePkgForDevice(selectedList, device); + monitor.done(); } - - // update package list - updatePackageInfo(selectedFiles); - pkgViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); - - Button removeBt = new Button( composite, SWT.PUSH ); - removeBt.setText(resources.getString("PkgMgr.Button.Uninstall")); - removeBt.setToolTipText(resources.getString("PkgMgr.Button.Uninstall.Tooltip")); - removeBt.addMouseListener(new MouseListener(){ - - @Override - public void mouseDoubleClick(MouseEvent e) { - } - - @Override - public void mouseDown(MouseEvent e) { - final CopyOnWriteArrayList selectedList = - PackageProvider.INSTANCE.getSelectedDevicePkgs(true); - if(selectedList.isEmpty()) { - DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); - return; + }); + } + catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.InstallFailed")+ + "("+e1.toString()+")"); + } + } + + + protected void handleInstallLocalPackageButton( final ArrayList selectedFiles ) { + + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Installing.LocalPackage"), -1); + RPMPackageCommander.InstallLocalPkgToDevice(selectedFiles, device); + monitor.done(); } + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.InstallFailed")+ + "("+e1.toString()+")"); + } + } + + + protected void handleRemovePackageButton() { + final CopyOnWriteArrayList selectedList = + PackageProvider.INSTANCE.getSelectedDevicePkgs(true); + if(selectedList.isEmpty()) { + DialogUtil.openErrorDialog( resources.getString("PkgMgr.Error.Noselected.Package")); + return; + } - ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); - try { - dialog.run(true, false, new IRunnableWithProgress() { - @Override - public void run(IProgressMonitor monitor) throws InvocationTargetException, - InterruptedException { - - monitor.beginTask(resources.getString("PkgMgr.Message.Uninstalling.Package"), -1); - RPMPackageCommander.uninstallPkgFromDevice(selectedList, device); - monitor.done(); - } - }); - } catch (Exception e1) { - DialogUtil.openErrorDialog( - resources.getString("PkgMgr.Msg.Error.UninstallFailed")+ - "("+e1.toString()+")"); + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + try { + dialog.run(true, false, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + monitor.beginTask(resources.getString("PkgMgr.Message.Uninstalling.Package"), -1); + RPMPackageCommander.uninstallPkgFromDevice(selectedList, device); + monitor.done(); } - - // update package list - updatePackageInfo(null); - pkgViewer.refresh(); - } - - @Override - public void mouseUp(MouseEvent e) { - } - }); + }); + } catch (Exception e1) { + DialogUtil.openErrorDialog( + resources.getString("PkgMgr.Msg.Error.UninstallFailed")+ + "("+e1.toString()+")"); + } } + - private void updatePackageInfo(ArrayList localPackageFileList ) { + protected void updatePackageInfo(ArrayList localPackageFileList ) { ArrayList fullList = RPMPackageCommander.getPackageListForDevice(device); ArrayList removeList = new ArrayList(); for( Package pkg: PackageProvider.INSTANCE.getDevicePkgs()) { @@ -560,202 +264,4 @@ public class DeviceTab { } } } - - - private void createPackageFilter( Composite parent ) { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL|GridData.GRAB_HORIZONTAL)); - composite.setLayout(new GridLayout(3,false)); - - Label filterTextLabel = new Label(composite, SWT.NONE); - filterTextLabel.setText(resources.getString("PkgMgr.Label.Filter")); - - categoryCombo = new Combo(composite, SWT.READ_ONLY); - String[] items = {"All","Installed","Upgradable"}; - categoryCombo.setItems(items); - categoryCombo.addSelectionListener( new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - pkgViewer.refresh(); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // do nothing - } - }); - categoryCombo.select(0); - - - filterText = new Text( composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH); - GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL); - filterText.setLayoutData(gridData); - filterText.addModifyListener(new ModifyListener() { - - @Override - public void modifyText(ModifyEvent e) { - pkgViewer.refresh(); - } - }); - } - - - - private void createPackageTable( Composite parent ) - { - Composite composite = new Composite( parent, SWT.NONE ); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - composite.setLayout(new FillLayout()); - - pkgViewer = CheckboxTableViewer.newCheckList( composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CHECK ); - createColumns( composite ); - Table packageTable = pkgViewer.getTable(); - packageTable.addListener( SWT.Selection, new Listener(){ - - @Override - public void handleEvent(Event event) { - if( event.detail == SWT.CHECK ) - { - Package pkg = (Package)event.item.getData(); - pkg.setCheckColumn( !pkg.getCheckColumn() ); - } - } - }); - - packageTable.setHeaderVisible(true); - packageTable.setLinesVisible(true); - - pkgViewer.setContentProvider(new ArrayContentProvider()); - pkgViewer.setCheckStateProvider(new ICheckStateProvider() { - - @Override - public boolean isChecked(Object element) { - Package pkg = (Package) element; - return pkg.isChecked(); - } - - @Override - public boolean isGrayed(Object element) { - return false; - } - }); - pkgViewer.addFilter( new ViewerFilter() { - - @Override - public boolean select(Viewer viewer, Object parentElement, - Object element) { - Package pkg = (Package) element; - if ( categoryCombo != null ) { - if ( categoryCombo.getText().equals("Installed") && - pkg.getInstalledVersion().isEmpty() ) { - return false; - } - if ( categoryCombo.getText().equals("Upgradable") && - ( pkg.getInstalledVersion().isEmpty() || - pkg.getNewVersion().isEmpty() || - RPMPackageCommander.compareVersion(pkg.getInstalledVersion(),pkg.getNewVersion()) >= 0 )) { - return false; - } - } - if ( filterText != null && !pkg.getName().contains(filterText.getText()) ) { - return false; - } - return true; - } - - }); - pkgViewer.addCheckStateListener( new ICheckStateListener() { - - @Override - public void checkStateChanged(CheckStateChangedEvent event) { - Package pkg = (Package)event.getElement(); - pkg.setChecked(true); - } - }); - pkgViewer.setInput(PackageProvider.INSTANCE.getDevicePkgs()); - } - - - - private TableViewerColumn createTableViewerColumn(TableViewer viewer, String title, int bound, int Style) { - - final TableViewerColumn viewerColumn = new TableViewerColumn( viewer, Style); - final TableColumn column = viewerColumn.getColumn(); - column.addSelectionListener(new PackageTableSelectionAdapter(pkgViewer)); - column.setText(title); - column.setWidth(bound); - column.setResizable(true); - column.setMoveable(true); - return viewerColumn; - } - - private void createColumns( Composite parent ) - { - String[] titles = {"S", "Package Name", "Installed Version", "New Version", "Arch", "Description"}; - int[] bounds = { 24, 200, 150, 150, 60, 150}; - - TableViewerColumn colSelection = createTableViewerColumn( pkgViewer, titles[0], bounds[0], SWT.NONE); - colSelection.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - return ""; - } - }); - - TableViewerColumn colPackage = createTableViewerColumn( pkgViewer, titles[1], bounds[1], SWT.NONE); - colPackage.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - if ( pkg.isNewlyChanged() ) { - return "*"+pkg.getName(); - } - else { - return pkg.getName(); - } - } - }); - - TableViewerColumn colInsVer = createTableViewerColumn( pkgViewer, titles[2], bounds[2], SWT.NONE); - colInsVer.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - String installedVer = pkg.getInstalledVersion(); - return installedVer; - } - }); - - - TableViewerColumn colNewVer = createTableViewerColumn( pkgViewer, titles[3], bounds[3], SWT.NONE); - - colNewVer.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - String newVer = pkg.getNewVersion(); - return newVer; - } - }); - - TableViewerColumn colArch = createTableViewerColumn( pkgViewer, titles[4], bounds[4], SWT.NONE); - - colArch.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - Package pkg = (Package)element; - String arch = pkg.getArch(); - return arch; - } - }); - - TableViewerColumn colDescription = createTableViewerColumn( pkgViewer, titles[5], bounds[5], SWT.NONE); - colDescription.setLabelProvider(new ColumnLabelProvider() { - @Override - public String getText(Object element) { - return ""; - } - }); - } } -- 2.7.4