Package org.objectstyle.wolips.baseforuiplugins.plist

Source Code of org.objectstyle.wolips.baseforuiplugins.plist.PropertyListValueEditingSupport

package org.objectstyle.wolips.baseforuiplugins.plist;

import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.TreeViewer;
import org.objectstyle.wolips.baseforplugins.util.ComparisonUtils;
import org.objectstyle.wolips.baseforuiplugins.utils.WOTextCellEditor;

public class PropertyListValueEditingSupport extends EditingSupport {
  private IPropertyListChangeListener _listener;

  private TreeViewer _treeViewer;

  private TextCellEditor _textCellEditor;

  public PropertyListValueEditingSupport(TreeViewer viewer, IPropertyListChangeListener listener) {
    super(viewer);
    _listener = listener;
    _treeViewer = viewer;
    _textCellEditor = new WOTextCellEditor(_treeViewer.getTree());
  }

  protected boolean canEdit(Object element) {
    return !((PropertyListPath) element).isCollectionValue();
  }

  protected CellEditor getCellEditor(Object element) {
    return _textCellEditor;
  }

  protected Object getValue(Object element) {
    PropertyListPath path = (PropertyListPath) element;
    return path.convertValueToType(PropertyListPath.Type.String);
  }

  protected void setValue(Object element, Object value) {
    PropertyListPath path = (PropertyListPath) element;
    String strValue = (String) value;
    Object convertedValue = PropertyListPath.convertValueFromTypeToType(path.getKeyPath(), strValue, PropertyListPath.Type.String, path.getType(), path.getFactory());

    Object oldValue = path.getValue();
    if (!ComparisonUtils.equals(oldValue, convertedValue)) {
      boolean parentChanged = path.setValue(convertedValue);
      if (parentChanged) {
        _listener.pathChanged(path.getParent().getKeyPath(), oldValue, convertedValue);
        _treeViewer.refresh(path.getParent());
      } else {
        _listener.pathChanged(path.getKeyPath(), oldValue, convertedValue);
        _treeViewer.refresh(path);
      }
    }
  }
}
TOP

Related Classes of org.objectstyle.wolips.baseforuiplugins.plist.PropertyListValueEditingSupport

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.