package edu.ualberta.med.biobank.forms.input; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.resource.ImageDescriptor; import edu.ualberta.med.biobank.gui.common.forms.BgcFormInput; import edu.ualberta.med.biobank.treeview.AbstractAdapterBase; public class FormInput extends BgcFormInput { private boolean hasPreviousForm; public FormInput(Object o) { this(o, false); } public FormInput(Object o, String name) { super(o, name); } public FormInput(Object o, boolean hasPreviousForm) { super(o, null); this.hasPreviousForm = hasPreviousForm; } public int getIndex() { if (obj instanceof AbstractAdapterBase) { AbstractAdapterBase adapter = (AbstractAdapterBase) obj; if (adapter != null) { Integer id = adapter.getId(); if (id != null) return id.intValue(); } } else { Assert.isTrue(false, "invalid type for form input object"); //$NON-NLS-1$ } return -1; } @Override public boolean exists() { return true; } @Override public ImageDescriptor getImageDescriptor() { return null; } @Override public String getName() { if ((obj == null) && (name != null)) { return name; } if (obj == null) { return null; } if (obj instanceof AbstractAdapterBase) { return ((AbstractAdapterBase) obj).getTooltipText(); } return name; } @SuppressWarnings({ "rawtypes" }) @Override public Object getAdapter(Class adapter) { if (obj == null) return null; if ((adapter == AbstractAdapterBase.class) && (obj instanceof AbstractAdapterBase)) { return obj; } else if (adapter == obj.getClass()) { return obj; } return null; } @Override public boolean equals(Object o) { if ((obj == null) || (o == null)) return false; if (o instanceof FormInput) { if ((obj == null) || (((FormInput) o).obj == null)) return false; if (obj.getClass() != ((FormInput) o).obj.getClass()) return false; if (obj instanceof AbstractAdapterBase) { int myIndex = getIndex(); int oIndex = ((FormInput) o).getIndex(); return ((myIndex != -1) && (oIndex != -1) && (myIndex == oIndex)); } } return false; } @Override public int hashCode() { return super.hashCode(); } public boolean hasPreviousForm() { return hasPreviousForm; } public void setHasPreviousForm(boolean hasPreviousForm) { this.hasPreviousForm = hasPreviousForm; } }