/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.ui.attribute.adapter.custom; import java.util.ArrayList; import org.jboss.tools.common.meta.XAttribute; import org.jboss.tools.common.model.ui.attribute.IListContentProvider; import org.jboss.tools.common.model.ui.attribute.adapter.DefaultComboBoxValueAdapter; import org.eclipse.jdt.launching.IVMInstall; import org.eclipse.jdt.launching.IVMInstallType; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.Viewer; public class TomcatJVMListAdapter extends DefaultComboBoxValueAdapter implements IListContentProvider { protected String[] tags = new String[0]; public TomcatJVMListAdapter(){ } protected IListContentProvider createListContentProvider(XAttribute attribute) { return this; } public void dispose() { } public Object[] getElements(Object inputElement) { if(tags.length==0) loadTags(); return tags; } public void inputChanged( Viewer viewer, Object oldInput, Object newInput) { } protected void loadTags() { ArrayList<String> list = new ArrayList<String>(); IVMInstallType[] jvmType = JavaRuntime.getVMInstallTypes(); for (int i = 0; i < jvmType.length; i++) { IVMInstall[] jvmInstall = jvmType[i].getVMInstalls(); for (int j = 0; j < jvmInstall.length; j++) { list.add(jvmInstall[j].getName()); } } tags = list.toArray(new String[0]); } public void propertyChange(PropertyChangeEvent event) { } public Object getAdapter(Class adapter) { if(adapter==ILabelProvider.class) { return new TomcatAdapterList(); } return super.getAdapter(adapter); } static class TomcatAdapterList extends LabelProvider { public String getText(Object text) { IVMInstallType[] jvmType = JavaRuntime.getVMInstallTypes(); for (int i = 0; i < jvmType.length; i++) { IVMInstall[] jvmInstall = jvmType[i].getVMInstalls(); for (int j = 0; j < jvmInstall.length; j++) { if(jvmInstall[j].getName().equals(text)) return jvmInstall[j].getName() + " - \"" + (jvmInstall[j].getInstallLocation().getPath().length()>50?jvmInstall[j].getInstallLocation().getPath().substring(50)+" ...":jvmInstall[j].getInstallLocation().getPath()) +"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } return ""; //$NON-NLS-1$ } } }