/******************************************************************************* * 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.jsf.ui.attribute.adapter; import java.text.MessageFormat; import java.util.Properties; import org.jboss.tools.common.model.ui.*; import org.jboss.tools.common.model.ui.attribute.adapter.DefaultValueAdapter; import org.eclipse.swt.widgets.Control; import org.jboss.tools.common.meta.key.WizardKeys; import org.jboss.tools.jsf.ui.JsfUIMessages; import org.jboss.tools.jst.web.ui.internal.editor.contentassist.JSPDialogContentProposalProvider; import org.jboss.tools.jst.web.ui.internal.editor.outline.*; public class JSFKnowledgeBaseAdapter extends DefaultValueAdapter implements IActionHelper, IActionHelperExtension { Properties context = new Properties(); public void setContext(Properties context) { this.context = context; } public String getCommand() { return JsfUIMessages.JSFKnowledgeBaseAdapter_Browse; } public String invoke(Control control) { return invoke0(control); } public String invoke0(Control control) { //ValueHelper h = new ValueHelper(); //context.put("valueHelper", h); String nodeName = "h:" + attribute.getProperty("nodeName"); //$NON-NLS-1$ //$NON-NLS-2$ String attrName = attribute.getProperty("attrName"); //$NON-NLS-1$ context.setProperty("nodeName", nodeName); //$NON-NLS-1$ context.setProperty("attributeName", attrName); //$NON-NLS-1$ JSPDialogContentProposalProvider pp = new JSPDialogContentProposalProvider(); pp.setAttrMode(); pp.setContext(context); String query = "/" + nodeName + "@" + attrName; //$NON-NLS-1$ //$NON-NLS-2$ context.setProperty("query", query); //$NON-NLS-1$ context.setProperty("help", query); //$NON-NLS-1$ context.setProperty("title", MessageFormat.format(JsfUIMessages.JSFKnowledgeBaseAdapter_Edit, WizardKeys.toDisplayName(attrName))); //$NON-NLS-1$ context.setProperty("subtitle", "<" + context.getProperty("nodeName") + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ if(getValue() instanceof String) context.put("value", getValue()); //$NON-NLS-1$ JSPTreeDialog dialog = new JSPTreeDialog(); dialog.setObject(context); if(dialog.execute() != 0) return null; return context.getProperty("value"); //$NON-NLS-1$ } public Object getAdapter(Class adapter) { if(adapter == IActionHelper.class) return this; return super.getAdapter(adapter); } public boolean isEditableInline() { return true; } }