diff options
7 files changed, 296 insertions, 106 deletions
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF b/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF index f38a9a4a2c..0d289581ef 100644 --- a/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF +++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF @@ -8,10 +8,10 @@ Bundle-Activator: org.eclipse.linuxtools.internal.rpm.createrepo.Activator Bundle-Vendor: %Bundle-Vendor Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, - org.eclipse.core.resources;bundle-version="3.8.101", org.eclipse.ui.ide;bundle-version="3.9.1", org.eclipse.ui.editors;bundle-version="3.8.100", org.eclipse.ui.forms;bundle-version="3.6.1", - org.eclipse.ui.console;bundle-version="3.5.200" + org.eclipse.ui.console;bundle-version="3.5.200", + org.eclipse.core.resources Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ActivationPolicy: lazy diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java index 7ea69f7839..e3357068ca 100644 --- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java +++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java @@ -75,17 +75,31 @@ public final class Messages { /****/ public static String ImportRPMsPage_buttonRemoveRPMs; /****/ - public static String ImportRPMsPage_buttonDeleteRPMs; - /****/ public static String ImportRPMsPage_buttonCreateRepo; /****/ public static String ImportRPMsPage_errorRefreshingTree; - // MainOverviewPage + // MetadataPage + /****/ + public static String MetadataPage_title; + /****/ + public static String MetadataPage_formHeaderText; + /****/ + public static String MetadataPage_sectionTitleRevision; + /****/ + public static String MetadataPage_sectionInstructionRevision; + /****/ + public static String MetadataPage_labelRevision; + /****/ + public static String MetadataPage_sectionTitleTags; + /****/ + public static String MetadataPage_sectionInstructionTags; + /****/ + public static String MetadataPage_buttonAddTag; /****/ - public static String MainOverviewPage_title; + public static String MetadataPage_buttonEditTag; /****/ - public static String MainOverviewPage_formHeaderText; + public static String MetadataPage_buttonRemoveTag; static { // initialize resource bundle diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java index 201eb4fd44..1a954adb67 100644 --- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java +++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java @@ -119,10 +119,6 @@ public class ImportRPMsPage extends FormPage { toolkit).addSelectionListener(new RemoveButtonListener()); createSpace(buttonList); - createPushButton(buttonList, Messages.ImportRPMsPage_buttonDeleteRPMs, - toolkit).addSelectionListener(new DeleteButtonListener()); - createSpace(buttonList); - createPushButton(buttonList, Messages.ImportRPMsPage_buttonCreateRepo, toolkit).addSelectionListener(new CreaterepoButtonListener()); @@ -257,25 +253,6 @@ public class ImportRPMsPage extends FormPage { } /** - * Handle the delete button execution on the Import RPMs page. - */ - public class DeleteButtonListener extends SelectionAdapter { - /* - * (non-Javadoc) - * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetSelected(SelectionEvent e) { } - - /* - * (non-Javadoc) - * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetDefaultSelected(SelectionEvent e) { } - } - - /** * Handle the createrepo button execution on the Import RPMs page. */ public class CreaterepoButtonListener extends SelectionAdapter { diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java deleted file mode 100644 index 142234cb87..0000000000 --- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Red Hat Inc. and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Neil Guzman - initial API and implementation - *******************************************************************************/ -package org.eclipse.linuxtools.internal.rpm.createrepo.form; - -import org.eclipse.jface.action.ToolBarManager; -import org.eclipse.linuxtools.internal.rpm.createrepo.Activator; -import org.eclipse.linuxtools.internal.rpm.createrepo.Messages; -import org.eclipse.ui.forms.IManagedForm; -import org.eclipse.ui.forms.editor.FormEditor; -import org.eclipse.ui.forms.editor.FormPage; -import org.eclipse.ui.forms.widgets.FormToolkit; -import org.eclipse.ui.forms.widgets.ScrolledForm; -import org.eclipse.ui.menus.IMenuService; - -/** - * This page will allow the user to view/edit some of the repo - * xml metadata (i.e., repo, revision, etc.). - * - * For now this page would allow customization of the createrepo - * command, but it would be better to have it done through - * preferences. - */ -public class MainOverviewPage extends FormPage { - - private FormToolkit toolkit; - private ScrolledForm form; - - private static final String MENU_URI = "toolbar:formsToolbar"; //$NON-NLS-1$ - private static final String HEADER_ICON = "/icons/repository_rep.gif"; //$NON-NLS-1$ - - /** Default constructor. */ - public MainOverviewPage(FormEditor editor) { - super(editor, Messages.MainOverviewPage_title, Messages.MainOverviewPage_title); - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm) - */ - @Override - protected void createFormContent(IManagedForm managedForm) { - // setting up the form page - super.createFormContent(managedForm); - toolkit = managedForm.getToolkit(); - form = managedForm.getForm(); - form.setText(Messages.MainOverviewPage_formHeaderText); - toolkit = managedForm.getToolkit(); - form = managedForm.getForm(); - form.setText(Messages.MainOverviewPage_formHeaderText); - form.setImage(Activator.getImageDescriptor(HEADER_ICON).createImage()); - ToolBarManager toolbarManager = (ToolBarManager) form.getToolBarManager(); - toolkit.decorateFormHeading(form.getForm()); - - // add the menuContribution from MANIFEST.MF to the form - IMenuService menuService = (IMenuService) getSite().getService(IMenuService.class); - menuService.populateContributionManager(toolbarManager, MENU_URI); - toolbarManager.update(true); - } - -} diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java new file mode 100644 index 0000000000..8f23ab2ed8 --- /dev/null +++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java @@ -0,0 +1,260 @@ +/******************************************************************************* + * Copyright (c) 2013 Red Hat Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Neil Guzman - initial API and implementation + *******************************************************************************/ +package org.eclipse.linuxtools.internal.rpm.createrepo.form; + +import org.eclipse.jface.action.ToolBarManager; +import org.eclipse.linuxtools.internal.rpm.createrepo.Activator; +import org.eclipse.linuxtools.internal.rpm.createrepo.Messages; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.forms.IManagedForm; +import org.eclipse.ui.forms.editor.FormEditor; +import org.eclipse.ui.forms.editor.FormPage; +import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.ui.forms.widgets.ScrolledForm; +import org.eclipse.ui.forms.widgets.Section; +import org.eclipse.ui.menus.IMenuService; + +/** + * This page will allow the user to view/edit some of the repo + * xml metadata (i.e., repo, revision, etc.). + */ +public class MetadataPage extends FormPage { + + private FormToolkit toolkit; + private ScrolledForm form; + + private Text revisionTxt; + private Tree tagsTree; + private Composite buttonList; + + private static final String MENU_URI = "toolbar:formsToolbar"; //$NON-NLS-1$ + private static final String HEADER_ICON = "/icons/repository_rep.gif"; //$NON-NLS-1$ + + /** Default constructor. */ + public MetadataPage(FormEditor editor) { + super(editor, Messages.MetadataPage_title, Messages.MetadataPage_title); + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm) + */ + @Override + protected void createFormContent(IManagedForm managedForm) { + // setting up the form page + super.createFormContent(managedForm); + GridLayout layout = new GridLayout(); + GridData data = new GridData(); + toolkit = managedForm.getToolkit(); + form = managedForm.getForm(); + form.setText(Messages.MetadataPage_formHeaderText); + form.setImage(Activator.getImageDescriptor(HEADER_ICON).createImage()); + ToolBarManager toolbarManager = (ToolBarManager) form.getToolBarManager(); + toolkit.decorateFormHeading(form.getForm()); + + // add the menuContribution from MANIFEST.MF to the form + IMenuService menuService = (IMenuService) getSite().getService(IMenuService.class); + menuService.populateContributionManager(toolbarManager, MENU_URI); + toolbarManager.update(true); + + layout = new GridLayout(); + layout.marginWidth = 6; layout.marginHeight = 12; + form.getBody().setLayout(layout); + + //--------------------------------- REVISION SECTION START ---------- + // Section and its client area to manage updating revision info + Section revSection = toolkit.createSection(form.getBody(), Section.DESCRIPTION + | Section.TITLE_BAR); + layout = new GridLayout(); + data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + revSection.setText(Messages.MetadataPage_sectionTitleRevision); + revSection.setDescription(Messages.MetadataPage_sectionInstructionRevision); + revSection.setLayoutData(data); + + // the client area containing the editing fields + Composite sectionClient = toolkit.createComposite(revSection); + layout = new GridLayout(2, false); + layout.marginWidth = 1; layout.marginHeight = 7; + sectionClient.setLayout(layout); + + revisionTxt = createTextFieldWithLabel(sectionClient, Messages.MetadataPage_labelRevision); + revSection.setClient(sectionClient); + //---------- REVISION SECTION END + + //--------------------------------- TAGS SECTION START ---------- + // Section and its client area to manage tags + Section tagSection = toolkit.createSection(form.getBody(), Section.DESCRIPTION + | Section.TITLE_BAR); + layout = new GridLayout(); + tagSection.setText(Messages.MetadataPage_sectionTitleTags); + tagSection.setDescription(Messages.MetadataPage_sectionInstructionTags); + tagSection.setLayoutData(expandComposite()); + + // the client area containing the tags + Composite sectionClientTags = toolkit.createComposite(tagSection); + layout = new GridLayout(2, false); + layout.marginWidth = 1; layout.marginHeight = 7; + sectionClientTags.setLayout(layout); + + // TODO: create custom tree to handle tags in specific categories (distro, content, repo) + tagsTree = toolkit.createTree(sectionClientTags, SWT.BORDER | SWT.MULTI | SWT.HORIZONTAL + | SWT.VERTICAL | SWT.LEFT_TO_RIGHT | SWT.SMOOTH); + tagsTree.setLayoutData(expandComposite()); + + // everything to do with the buttons + buttonList = toolkit.createComposite(sectionClientTags); + layout = new GridLayout(); + data = new GridData(SWT.BEGINNING, SWT.FILL, false, true); + layout.marginWidth = 0; layout.marginHeight = 0; + buttonList.setLayout(layout); + buttonList.setLayoutData(data); + createPushButton(buttonList, Messages.MetadataPage_buttonAddTag, + toolkit).addSelectionListener(new AddTagButtonListener()); + createPushButton(buttonList, Messages.MetadataPage_buttonEditTag, + toolkit).addSelectionListener(new EditTagButtonListener()); + createPushButton(buttonList, Messages.MetadataPage_buttonRemoveTag, + toolkit).addSelectionListener(new RemoveTagButtonListener()); + tagSection.setClient(sectionClientTags); + //---------- TAGS SECTION END + + managedForm.refresh(); + } + + /** + * Make a GridData that expands to fill both horizontally + * and vertically. + * + * @return The created GridData. + */ + private GridData expandComposite() { + GridData data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + data.grabExcessVerticalSpace = true; + return data; + } + /** + * Create a push style button. + * + * @param parent The parent the button will belong to. + * @param buttonText The text show on the button. + * @param toolkit The form toolkit used in creating a button. + * @return The button created. + */ + private Button createPushButton(Composite parent, String buttonText, FormToolkit toolkit) { + Button button = toolkit.createButton(parent, buttonText, SWT.PUSH | SWT.FLAT + | SWT.CENTER | SWT.LEFT_TO_RIGHT); + button.setFont(parent.getFont()); + GridData gd = new GridData(SWT.FILL, SWT.BEGINNING, true, false); + button.setLayoutData(gd); + return button; + } + + /** + * Create a text field with a label. + * + * @param parent The parent of the text field and label. + * @param labelName The name on the label. + * @return The newly created text field. + */ + protected Text createTextFieldWithLabel(Composite parent, String labelName) { + GridData layoutData = new GridData(); + // create the label + Label respositoryBaseURLLbl = new Label(parent, SWT.NONE); + respositoryBaseURLLbl.setText(labelName); + layoutData = new GridData(); + layoutData.horizontalAlignment = GridData.BEGINNING; + layoutData.verticalAlignment = GridData.CENTER; + // create the text field + Text textField = new Text(parent, SWT.SINGLE); + layoutData = new GridData(); + layoutData.horizontalIndent = 50; + layoutData.grabExcessHorizontalSpace = true; + layoutData.horizontalAlignment = GridData.FILL; + layoutData.verticalAlignment = GridData.CENTER; + // achieve flat look (don't put SWT.BORDER) + textField.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); + toolkit.paintBordersFor(parent); + textField.setLayoutData(layoutData); + return textField; + } + + /** + * Handle the add button execution on the Metadata page. + */ + public class AddTagButtonListener extends SelectionAdapter { + /* + * (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { } + + /* + * (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetDefaultSelected(SelectionEvent e) { } + } + + /** + * Handle the edit button execution on the Metadata page. + */ + public class EditTagButtonListener extends SelectionAdapter { + /* + * (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { } + + /* + * (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetDefaultSelected(SelectionEvent e) { } + } + + /** + * Handle the remove button execution on the Metadata page. + */ + public class RemoveTagButtonListener extends SelectionAdapter { + /* + * (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { } + + /* + * (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetDefaultSelected(SelectionEvent e) { } + } + +} diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java index 34b7648fb0..2410fbfdb3 100644 --- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java +++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java @@ -109,7 +109,7 @@ public class RepoFormEditor extends FormEditor { */ void createPage1() { try { - FormPage composite = new MainOverviewPage(this); + FormPage composite = new MetadataPage(this); addPage(composite); } catch (PartInitException e) { Activator.logError(Messages.RepoFormEditor_errorInitializingForm, e); diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties index 7dcdcd36c6..721aa4fc90 100644 --- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties +++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties @@ -45,13 +45,20 @@ ImportRPMsPage_sectionInstruction= \ 1. Add the RPMs to create a YUM repository the file system. \n\ \ (via dragging from workspace or importing from the file system) \n\ 2. Create the repository. -ImportRPMsPage_buttonImportRPMs=Import RPMs -ImportRPMsPage_buttonRemoveRPMs=Remove RPMs -ImportRPMsPage_buttonDeleteRPMs=Delete RPMs -ImportRPMsPage_buttonCreateRepo=Create Repo +ImportRPMsPage_buttonImportRPMs=&Import RPMs +ImportRPMsPage_buttonRemoveRPMs=&Remove RPMs +ImportRPMsPage_buttonCreateRepo=&Create Repo ImportRPMsPage_errorRefreshingTree=Error while refreshing the RPM tree. Problem due to trying to get the \ RPMs in the content folder. -# MainOverviewPage -MainOverviewPage_title=Metadata -MainOverviewPage_formHeaderText=Execution and Metadata +# MetadataPage +MetadataPage_title=Metadata +MetadataPage_formHeaderText=Repository Tags and Revision +MetadataPage_sectionTitleRevision=Revision +MetadataPage_sectionInstructionRevision=Update the repository revision number. Changes take effect after execution. +MetadataPage_labelRevision=&Revision: +MetadataPage_sectionTitleTags=Tags +MetadataPage_sectionInstructionTags=Add or remove as many tags per category as needed. Changes take effect after execution. +MetadataPage_buttonAddTag=&Add +MetadataPage_buttonEditTag=&Edit +MetadataPage_buttonRemoveTag=&Remove |