blob: cad96f22a06354a953b3c7f7a4afe626f1e04751 [file] [log] [blame]
/*
* Copyright (c) 2007-2012, 2015 Eike Stepper (Berlin, Germany) 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:
* Eike Stepper - initial API and implementation
* Victor Roldan Betancort - maintenance
*/
package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.internal.ui.bundle.OM;
import org.eclipse.emf.cdo.internal.ui.dialogs.SelectPackageDialog;
import org.eclipse.emf.cdo.internal.ui.messages.Messages;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author Eike Stepper
*/
public class RegisterGeneratedPackagesAction extends RegisterPackagesAction
{
private static final String TITLE = Messages.getString("RegisterGeneratedPackagesAction.0"); //$NON-NLS-1$
private static final String TOOL_TIP = Messages.getString("RegisterGeneratedPackagesAction.1"); //$NON-NLS-1$
private EPackage.Registry registry = EPackage.Registry.INSTANCE;
public RegisterGeneratedPackagesAction(IWorkbenchPage page, CDOSession session)
{
super(page, TITLE, TOOL_TIP, null, session);
}
@Override
protected List<EPackage> getEPackages(IWorkbenchPage page, CDOSession session)
{
Shell shell = page.getWorkbenchWindow().getShell();
SelectPackageDialog dialog = new SelectPackageDialog(shell, Messages.getString("RegisterGeneratedPackagesAction.2"), //$NON-NLS-1$
Messages.getString("RegisterGeneratedPackagesAction.3"), session.getPackageRegistry() //$NON-NLS-1$
.keySet());
if (dialog.open() == SelectPackageDialog.OK)
{
Set<String> checkedURIs = dialog.getCheckedURIs();
List<EPackage> ePackages = new ArrayList<EPackage>(checkedURIs.size());
for (String uri : checkedURIs)
{
try
{
EPackage ePackage = registry.getEPackage(uri);
ePackages.add(ePackage);
}
catch (RuntimeException ex)
{
OM.LOG.error(ex);
}
}
return ePackages;
}
return null;
}
/**
* @author Eike Stepper
*/
public class EPackageFactoryValidator implements IInputValidator
{
public String isValid(String uri)
{
if (uri == null || uri.length() == 0)
{
return ""; //$NON-NLS-1$
}
return registry.containsKey(uri) ? null
: MessageFormat.format(Messages.getString("RegisterGeneratedPackagesAction.5"), uri); //$NON-NLS-1$
}
}
}