| /*******************************************************************************
|
| * Copyright (c) 2010, 2019 CEA LIST.
|
| *
|
| * All rights reserved. This program and the accompanying materials
|
| * are made available under the terms of the Eclipse Public License v2.0
|
| * which accompanies this distribution, and is available at
|
| * http://www.eclipse.org/legal/epl-v20.html
|
| *
|
| * Contributors:
|
| * Nicolas Bros (Mia-Software) - initial API and implementation
|
| * Nicolas Bros (Mia-Software) - Bug 339855 - ModelCellEditor class should not be exposed
|
| *******************************************************************************/ |
| package org.eclipse.modisco.facet.widgets.celleditors.internal;
|
|
|
| import org.eclipse.core.runtime.Platform;
|
| import org.eclipse.modisco.facet.util.core.Logger;
|
| import org.eclipse.modisco.facet.widgets.celleditors.modelCellEditor.AbstractModelCellEditor;
|
|
|
| public class ModelCellEditor {
|
| private final String bundleName;
|
| private final AbstractModelCellEditor modelCellEditor;
|
|
|
| public ModelCellEditor(final String bundleName, final AbstractModelCellEditor modelCellEditor) {
|
| this.bundleName = bundleName;
|
| this.modelCellEditor = modelCellEditor;
|
| }
|
|
|
| public String getBundleName() {
|
| return this.bundleName;
|
| }
|
|
|
| public String getCellID() {
|
| return this.modelCellEditor.getCellId();
|
| }
|
|
|
| public AbstractModelCellEditor getModelCellEditor() {
|
| return this.modelCellEditor;
|
| }
|
|
|
| public Object getCellEditorImplementation() {
|
| String className = this.modelCellEditor.getModelCellEditorImpl();
|
|
|
| Class<?> classInstance = null;
|
| try {
|
| classInstance = Platform.getBundle(this.bundleName).loadClass(className);
|
| } catch (Exception e) {
|
| Logger.logError("Could not find class: " + className, //$NON-NLS-1$
|
| Activator.getDefault());
|
| return null;
|
| }
|
|
|
| Object instance = null;
|
| try {
|
| instance = classInstance.newInstance();
|
| } catch (Exception e) {
|
| Logger.logError("Could not instantiate class: " + className, //$NON-NLS-1$
|
| Activator.getDefault());
|
| return null;
|
| }
|
| return instance;
|
| }
|
|
|
| @Override
|
| public boolean equals(final Object obj) {
|
| if (obj instanceof ModelCellEditor) {
|
| ModelCellEditor other = (ModelCellEditor) obj;
|
| return other.getCellID().equals(getCellID());
|
| }
|
| return false;
|
| }
|
|
|
| @Override
|
| public int hashCode() {
|
| return getCellID().hashCode();
|
| }
|
|
|
| @Override
|
| public String toString() {
|
| return getBundleName() + "#" + getCellID(); //$NON-NLS-1$
|
| }
|
| } |