/******************************************************************************* * Copyright (c) 2008-2011 Chair for Applied Software Engineering, * Technische Universitaet Muenchen. * 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: ******************************************************************************/ package org.eclipse.emf.emfstore.client.ui.dialogs; import java.util.List; import org.eclipse.emf.emfstore.client.model.ProjectSpace; import org.eclipse.emf.emfstore.client.ui.views.changes.TabbedChangesComposite; import org.eclipse.emf.emfstore.server.model.versioning.ChangePackage; import org.eclipse.jface.dialogs.TitleAreaDialog; 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.Shell; /** * This is the update dialog. It shows just a ChangesTreeComposite. * * @author Hodaie */ public class UpdateDialog extends TitleAreaDialog { private List<ChangePackage> changes; private ProjectSpace projectSpace; /** * Constructor. * * @param parentShell the parent shell * @param projectSpace the project space that should be updated * @param changes the list of changes */ public UpdateDialog(Shell parentShell, ProjectSpace projectSpace, List<ChangePackage> changes) { super(parentShell); this.setShellStyle(this.getShellStyle() | SWT.RESIZE); this.changes = changes; this.projectSpace = projectSpace; } /** * {@inheritDoc} */ @Override protected Control createDialogArea(Composite parent) { Composite contents = new Composite(parent, SWT.NONE); contents.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); contents.setLayout(new GridLayout(2, false)); // changes tree if (changes != null) { TabbedChangesComposite changesComposite = new TabbedChangesComposite(contents, SWT.BORDER, changes, projectSpace.getProject()); changesComposite.setReverseNodes(false); changesComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); } // show number of changes on dialog title setTitle("Changes from server"); return contents; } /** * {@inheritDoc} */ @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText("Update"); Rectangle area = newShell.getShell().getParent().getClientArea(); int width = area.width * 2 / 3; int height = area.height * 2 / 3; newShell.setBounds((area.width - width) / 2, (area.height - height) / 2, width, height); } /** * {@inheritDoc} */ @Override protected void okPressed() { // TODO final implementation super.okPressed(); } }