/*******************************************************************************
* 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.meta.constraint.impl;
import org.w3c.dom.*;
import org.jboss.tools.common.meta.constraint.XAttributeEditor;
import org.jboss.tools.common.meta.impl.*;
public class XAttributeEditorImpl extends XMetaElementImpl implements XAttributeEditor {
protected String editor = null;
protected String viewer = null;
private Object context = null;
public XAttributeEditorImpl() {}
public void setName(String name) {
if(name == null || name.trim().length() == 0) this.name = "Text";
else this.name = name;
}
public String getEditorClassName() {
if (editor == null) setDefaultClassName();
return editor;
}
public String getViewerClassName() {
if(viewer != null && viewer.startsWith("%")) findViewerName(); //$NON-NLS-1$
return viewer;
}
private void findViewerName() {
if(viewer == null || viewer.length() < 2) return;
viewer = viewer.substring(1, viewer.length() - 1);
viewer = getMetaModel().getMapping("AttributeEditor").getValue(viewer); //$NON-NLS-1$
}
protected void setDefaultClassName() {
editor = getMetaModel().getMapping("AttributeEditor").getValue(getName()); //$NON-NLS-1$
}
public void load(Element element) {
editor = (!XMetaDataLoader.hasAttribute(element, EDITOR_CLASSNAME)) ? null :
element.getAttribute(EDITOR_CLASSNAME);
viewer = (!XMetaDataLoader.hasAttribute(element, EDITOR_VIEWERNAME)) ? null :
element.getAttribute(EDITOR_VIEWERNAME);
}
public void setContext(Object context) {
this.context = context;
}
public Object getContext() {
return context;
}
}