/** * Copyright (c) 2011, 2012 Gunnar Wagenknecht 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: * Gunnar Wagenknecht - initial API and implementation */ package org.eclipse.gyrex.admin.ui.p2.internal; // //import org.eclipse.gyrex.admin.ui.internal.databinding.TrueWhenListSelectionNotEmptyConverter; //import org.eclipse.gyrex.admin.ui.internal.forms.ViewerWithButtonsSectionPart; //import org.eclipse.gyrex.admin.ui.internal.helper.SwtUtil; //import org.eclipse.gyrex.p2.internal.P2Activator; //import org.eclipse.gyrex.p2.internal.repositories.IRepositoryDefinitionManager; //import org.eclipse.gyrex.p2.internal.repositories.RepositoryDefinition; // //import org.eclipse.core.databinding.DataBindingContext; //import org.eclipse.core.databinding.UpdateValueStrategy; //import org.eclipse.core.databinding.observable.value.IObservableValue; //import org.eclipse.jface.databinding.swt.SWTObservables; //import org.eclipse.jface.databinding.viewers.ViewersObservables; //import org.eclipse.jface.dialogs.MessageDialog; //import org.eclipse.jface.layout.GridDataFactory; //import org.eclipse.jface.viewers.ArrayContentProvider; //import org.eclipse.jface.viewers.ListViewer; //import org.eclipse.jface.window.Window; //import org.eclipse.swt.SWT; //import org.eclipse.swt.events.SelectionAdapter; //import org.eclipse.swt.events.SelectionEvent; //import org.eclipse.swt.widgets.Button; //import org.eclipse.swt.widgets.Composite; //import org.eclipse.swt.widgets.List; //import org.eclipse.ui.forms.IManagedForm; //import org.eclipse.ui.forms.widgets.ExpandableComposite; //import org.eclipse.ui.forms.widgets.Section; // ///** // * // */ //public class RepositoriesSection extends ViewerWithButtonsSectionPart { // // private Button addButton; // private Button removeButton; // private ListViewer reposList; // private final DataBindingContext bindingContext; // private IObservableValue selectedRepoValue; // // /** // * Creates a new instance. // * // * @param parent // * @param page // */ // public RepositoriesSection(final Composite parent, final SoftwareLandingPage page) { // super(parent, page.getManagedForm().getToolkit(), Section.DESCRIPTION | ExpandableComposite.TITLE_BAR); // bindingContext = page.getBindingContext(); // final Section section = getSection(); // section.setText("Software Repository"); // section.setDescription("Define the available repositories."); // createContent(section); // } // // void addButtonPressed() { // final AddRepositoryDialog dialog = new AddRepositoryDialog(SwtUtil.getShell(addButton), getRepoManager()); // if (dialog.open() == Window.OK) { // markStale(); // } // } // // @Override // protected void createButtons(final Composite buttonsPanel) { // addButton = createButton(buttonsPanel, "Add...", new SelectionAdapter() { // @Override // public void widgetSelected(final SelectionEvent e) { // addButtonPressed(); // } // }); // removeButton = createButton(buttonsPanel, "Remove...", new SelectionAdapter() { // @Override // public void widgetSelected(final SelectionEvent e) { // removeButtonPressed(); // } // }); // } // // @Override // protected void createViewer(final Composite parent) { // reposList = new ListViewer(parent, getToolkit().getBorderStyle() | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); // // final List list = reposList.getList(); // getToolkit().adapt(list, true, true); // list.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); // // reposList.setContentProvider(new ArrayContentProvider()); // reposList.setLabelProvider(new P2UiLabelProvider()); // // selectedRepoValue = ViewersObservables.observeSingleSelection(reposList); // } // // /** // * Returns the bindingContext. // * // * @return the bindingContext // */ // public DataBindingContext getBindingContext() { // return bindingContext; // } // // IRepositoryDefinitionManager getRepoManager() { // return P2Activator.getInstance().getRepositoryManager(); // } // // private RepositoryDefinition getSelectedRepo() { // return (RepositoryDefinition) (null != selectedRepoValue ? selectedRepoValue.getValue() : null); // } // // @Override // public void initialize(final IManagedForm form) { // super.initialize(form); // // final UpdateValueStrategy modelToTarget = new UpdateValueStrategy(); // modelToTarget.setConverter(new TrueWhenListSelectionNotEmptyConverter()); // getBindingContext().bindValue(SWTObservables.observeEnabled(removeButton), SWTObservables.observeSelection(reposList.getControl()), new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modelToTarget); // } // // @Override // public void refresh() { // reposList.setInput(getRepoManager().getRepositories()); // super.refresh(); // } // // void removeButtonPressed() { // final RepositoryDefinition repo = getSelectedRepo(); // if (repo == null) { // return; // } // // if (!MessageDialog.openQuestion(SwtUtil.getShell(getSection()), "Remove Repository", "Do you really want to delete the repository?")) { // return; // } // // getRepoManager().removeRepository(repo.getId()); // markStale(); // } // //}