package com.liferay.ide.project.ui.upgrade; import com.liferay.ide.core.util.CoreUtil; import com.liferay.ide.project.core.upgrade.Liferay7UpgradeAssistantSettings; import com.liferay.ide.project.core.upgrade.UpgradeAssistantSettingsUtil; import com.liferay.ide.project.ui.dialog.LiferayProjectSelectionDialog; import com.liferay.ide.ui.util.UIUtil; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; /** * @author Gregory Amerson */ public class SelectJavaProjectsHandler extends AbstractHandler { @Override public Object execute( ExecutionEvent event ) throws ExecutionException { ViewerFilter filter = new ViewerFilter() { @Override public boolean select( Viewer viewer, Object parentElement, Object element ) { if( element instanceof IJavaProject ) { IJavaProject project = (IJavaProject) element; if( CoreUtil.isLiferayProject( project.getProject() ) ) { return true; } } return false; } }; LiferayProjectSelectionDialog dialog = new LiferayProjectSelectionDialog( UIUtil.getActiveShell(), filter ); dialog.open(); final Object[] projects = dialog.getResult(); if( projects != null && projects.length > 0 ) { try { Liferay7UpgradeAssistantSettings settings = UpgradeAssistantSettingsUtil.getObjectFromStore( Liferay7UpgradeAssistantSettings.class ); if ( settings == null ) { settings = new Liferay7UpgradeAssistantSettings(); } List<String> locations = new ArrayList<>(); for( Object project : projects ) { if( project instanceof IJavaProject ) { IJavaProject javaProject = (IJavaProject) project; locations.add( javaProject.getProject().getLocation().toOSString() ); } } settings.setJavaProjectLocations( locations.toArray( new String[0] ) ); UpgradeAssistantSettingsUtil.setObjectToStore( Liferay7UpgradeAssistantSettings.class, settings ); } catch( IOException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; } }