package org.tizen.nativeplatform.pkgmgr.ui;
import java.util.ResourceBundle;
+import java.util.concurrent.CopyOnWriteArrayList;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.tizen.common.util.DialogUtil;
import org.tizen.nativeplatform.pkgmgr.model.Repository;
import org.tizen.nativeplatform.pkgmgr.model.RepositoryProvider;
@Override
protected void okPressed() {
- Repository repo = new Repository();
+ CopyOnWriteArrayList<Repository> list = null;
+ Repository repo = new Repository();
repo.setName(nameText.getText());
repo.setUri(uriText.getText());
- repo.setCheckDirty(true);
if (resources.getString("PkgMgr.Tab.Buildsystem").equals(tab)) {
- RepositoryProvider.INSTANCE.getBuildsystemRepos().add(repo);
+ list = RepositoryProvider.INSTANCE.getBuildsystemRepos();
+ // if repository name or url already exist, then return
+ if (checkRepoExists(list, repo)) {
+ return;
+ } else {
+ repo.setCheckDirty(true);
+ RepositoryProvider.INSTANCE.getBuildsystemRepos().add(repo);
+ }
} else if (resources.getString("PkgMgr.Tab.Device").equals(tab)) {
- RepositoryProvider.INSTANCE.getDeviceRepos().add(repo);
+ list = RepositoryProvider.INSTANCE.getDeviceRepos();
+ // if repository name or url already exist, then return
+ if (checkRepoExists(list, repo)) {
+ return;
+ } else {
+ repo.setCheckDirty(true);
+ RepositoryProvider.INSTANCE.getDeviceRepos().add(repo);
+ }
}
super.okPressed();
}
+
+ private boolean checkRepoExists(CopyOnWriteArrayList<Repository> list, Repository repo) {
+ for( Repository r : list) {
+ if (r.getName().equals(repo.getName()) || r.getUri().equals(repo.getUri())) {
+ DialogUtil.openMessageDialog(resources.getString("AddRepo.Message.AlreadyExist"));
+ return true;
+ }
+ }
+ return false;
+ }
}
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.console.MessageConsoleStream;
import org.tizen.common.ui.view.console.ConsoleManager;
+import org.tizen.common.util.DialogUtil;
import org.tizen.common.util.FileUtil;
import org.tizen.nativecommon.build.CheckCancelJob;
import org.tizen.nativecommon.build.CurrentEnabledProject;
RPMPackageCommander.addRepositoryForRootstrap(repo.getName(), repo.getUri(), targetId, mcs, mcsError);
repo.setCheckDirty(false);
}
- }
+ }
}
@Override
}
});
+
+ Button modify_bt = new Button( parent, 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) {
+
+ CopyOnWriteArrayList<Repository> list = RepositoryProvider.INSTANCE.getBuildsystemRepos();
+
+ Repository selectedRepo = null;
+ int count = 0;
+
+ for( Repository repo : list) {
+ if (repo.getCheckColumn()) {
+ count++;
+ selectedRepo = repo;
+ }
+ }
+
+ if (count != 1 ) {
+ DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage"));
+ return;
+ }
+
+ ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Buildsystem"),
+ selectedRepo.getName(), selectedRepo.getUri());
+ dialog.open();
+
+ repoViewer.refresh();
+
+ int recentTableIndex = 0;
+ recentTableIndex = repoViewer.getTable().getItemCount();
+
+ for (int i = 0; i < recentTableIndex; i++) {
+ TableItem item = null;
+ item = repoViewer.getTable().getItem(i);
+ Repository repo = (Repository)item.getData();
+ item.setChecked(repo.getCheckColumn());
+
+ if (repo.getCheckDirty()) {
+ list.remove(selectedRepo);
+ ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true);
+ cm.clear();
+ MessageConsoleStream mcsError = cm.getMessageConsoleStream();
+ MessageConsoleStream mcs = cm.getMessageConsoleStream();
+ RPMPackageCommander.removeRepositoryForRootstrap(selectedRepo.getName(), targetId, mcs, mcsError);
+
+ cm.clear();
+ mcsError = cm.getMessageConsoleStream();
+ mcs = cm.getMessageConsoleStream();
+ RPMPackageCommander.addRepositoryForRootstrap(repo.getName(), repo.getUri(), targetId, mcs, mcsError);
+ repo.setCheckDirty(false);
+ }
+ }
+
+ repoViewer.refresh();
+ recentTableIndex = repoViewer.getTable().getItemCount();
+
+ for (int i = 0; i < recentTableIndex; i++) {
+ TableItem item = repoViewer.getTable().getItem(i);
+ Repository repo = (Repository)item.getData();
+ item.setChecked(repo.getCheckColumn());
+ }
+ }
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ }
+ });
Button remove_bt = new Button( parent, SWT.PUSH );
remove_bt.setText(resources.getString("PkgMgr.Button.RemoveRepo"));
@Override
public void mouseUp(MouseEvent e) {
}
-
- });
+ });
}
private void createPackageTable( Composite parent )
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.console.MessageConsoleStream;
import org.tizen.common.ui.view.console.ConsoleManager;
+import org.tizen.common.util.DialogUtil;
import org.tizen.nativecommon.build.SmartBuildInterface;
import org.tizen.nativecommon.build.exception.SBIException;
import org.tizen.nativeplatform.pkgmgr.PackageManagerOuputReceiver;
}
});
+
+ Button modify_bt = new Button( parent, 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) {
+
+ CopyOnWriteArrayList<Repository> list = RepositoryProvider.INSTANCE.getDeviceRepos();
+
+ Repository selectedRepo = null;
+ int count = 0;
+
+ for( Repository repo : list) {
+ if (repo.getCheckColumn()) {
+ count++;
+ selectedRepo = repo;
+ }
+ }
+
+ if (count != 1 ) {
+ DialogUtil.openMessageDialog(resources.getString("PkgMgr.Message.Select.OnePackage"));
+ return;
+ }
+
+ ModifyRepoDialog dialog = new ModifyRepoDialog(shell, resources.getString("PkgMgr.Tab.Device"),
+ selectedRepo.getName(), selectedRepo.getUri());
+ dialog.open();
+
+ repoViewer.refresh();
+
+ int recentTableIndex = 0;
+ recentTableIndex = repoViewer.getTable().getItemCount();
+
+ for (int i = 0; i < recentTableIndex; i++) {
+ TableItem item = null;
+ item = repoViewer.getTable().getItem(i);
+ Repository repo = (Repository)item.getData();
+ item.setChecked(repo.getCheckColumn());
+
+ if (repo.getCheckDirty()) {
+ list.remove(selectedRepo);
+ PackageManagerOuputReceiver rec = getNewOuputReceiver();
+ RPMPackageCommander.removeRepositoryForDevice(selectedRepo.getName(), device, rec);
+
+ rec.cleanLog();
+ RPMPackageCommander.addRepositoryForDevice(repo.getName(), repo.getUri(), device, rec);
+ repo.setCheckDirty(false);
+ }
+ }
+
+ repoViewer.refresh();
+ recentTableIndex = repoViewer.getTable().getItemCount();
+
+ for (int i = 0; i < recentTableIndex; i++) {
+ TableItem item = repoViewer.getTable().getItem(i);
+ Repository repo = (Repository)item.getData();
+ item.setChecked(repo.getCheckColumn());
+ }
+ }
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ }
+ });
+
Button remove_bt = new Button( parent, SWT.PUSH );
remove_bt.setText(resources.getString("PkgMgr.Button.RemoveRepo"));
--- /dev/null
+package org.tizen.nativeplatform.pkgmgr.ui;
+
+import java.util.ResourceBundle;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+import org.tizen.nativeplatform.pkgmgr.model.Repository;
+import org.tizen.nativeplatform.pkgmgr.model.RepositoryProvider;
+
+public class ModifyRepoDialog extends Dialog {
+
+ private Text nameText;
+ private Text uriText;
+ private String tab;
+ private String name;
+ private String value;
+
+ private int x = 0;
+ private int y = 0;
+ private final int width = 500;
+ private final int height = 200;
+
+ private final String BUNDLE_NAME = ModifyRepoDialog.class.getPackage().getName() + ".PkgMgrUIMessages";//$NON-NLS-1$
+ private ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME);
+
+ protected ModifyRepoDialog(Shell parentShell) {
+ super(parentShell);
+ }
+
+ public ModifyRepoDialog(Shell parentShell, String tab, String name, String value) {
+ super(parentShell);
+ this.tab = tab;
+ this.name = name;
+ this.value = value;
+ Rectangle bounds = parentShell.getBounds();
+ x = bounds.x + (bounds.width - width)/2;
+ y = bounds.y + (bounds.height - height)/2;
+ }
+
+ @Override
+ protected void configureShell(Shell newShell) {
+ super.configureShell(newShell);
+
+ newShell.setText(resources.getString("ModifyRepo.Title"));
+ newShell.setLocation(x, y);
+ newShell.setSize(width, height);
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+
+ Composite composite = new Composite( parent, SWT.NONE);
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ composite.setLayout(new GridLayout(2, false));
+
+ Label nameLabel = new Label(composite, SWT.NONE);
+ nameLabel.setText(resources.getString("ModifyRepo.Label.Name"));
+ nameText = new Text(composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH);
+ GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
+ gridData.widthHint = 500;
+ nameText.setLayoutData(gridData);
+ nameText.setText(name);
+ nameText.setEnabled(false);
+
+ Label urlLabel = new Label(composite, SWT.NONE);
+ urlLabel.setText(resources.getString("ModifyRepo.Label.Uri"));
+ uriText = new Text(composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH);
+ gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
+ gridData.widthHint = 500;
+ uriText.setLayoutData(gridData);
+ uriText.setText(value);
+
+ return null;
+ }
+
+ @Override
+ protected void okPressed() {
+
+ Repository repo = new Repository();
+ if (!uriText.getText().equals(value)) {
+ repo.setName(nameText.getText());
+ repo.setUri(uriText.getText());
+ repo.setCheckDirty(true);
+
+ if (resources.getString("PkgMgr.Tab.Buildsystem").equals(tab)) {
+ RepositoryProvider.INSTANCE.getBuildsystemRepos().add(repo);
+ } else if (resources.getString("PkgMgr.Tab.Device").equals(tab)) {
+ RepositoryProvider.INSTANCE.getDeviceRepos().add(repo);
+ }
+ }
+
+ super.okPressed();
+ }
+}
PkgMgr.Label.Connection = Selected connection:
PkgMgr.Button.AddRepo = Add
PkgMgr.Button.AddRepo.Tooltip = Add a repository
+PkgMgr.Button.ModifyRepo = Modify
+PkgMgr.Button.ModifyRepo.Tooltip = Modify a repository
PkgMgr.Button.RemoveRepo = Remove
PkgMgr.Button.RemoveRepo.Tooltip = Remove the selected repositories
PkgMgr.Button.RefreshRepo = Refresh
PkgMgr.Message.Adding.Package = Adding packages to the list...
PkgMgr.Message.Getting.RemotePackage = Getting the remote package list...
PkgMgr.Message.Installing.Package = Installing packages...
+PkgMgr.Message.Select.OnePackage = Please select one repository
PkgMgr.Message.Transfer.File = Transferring %s to target's %s...
PkgMgr.Console.Remote.Install = ***** Installing a remote package *****\n
PkgMgr.Console.Local.Install = \n***** Installing a local package *****\n
AddRepo.Title = Add Package Repository
AddRepo.Label.Name = Name:
-AddRepo.Label.Uri = URI:
+AddRepo.Label.Uri = URI:
+AddRepo.Message.AlreadyExist = The repository already exists
+
+ModifyRepo.Title = Modify Package Repository
+ModifyRepo.Label.Name = Name:
+ModifyRepo.Label.Uri = URI:
AddRemotePkg.Title = Add Remote Packages