package krasa.grepconsole.gui.table.column; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import krasa.grepconsole.gui.table.ModelUtils; import krasa.grepconsole.model.GrepExpressionGroup; import org.jetbrains.annotations.Nullable; import com.intellij.util.ui.ColumnInfo; /** * @author Vojtech Krasa */ public class GroupNameAdapter extends FolderColumnInfoWrapper { private ColumnInfo groupColumnInfo; public GroupNameAdapter(ColumnInfo columnInfo) { super(columnInfo); groupColumnInfo = new JavaBeanColumnInfo<GrepExpressionGroup, String>("name", "name"); } @Override public boolean isCellEditable(Object o) { Object o1 = ModelUtils.unWrap(o); if (o1 instanceof GrepExpressionGroup) { return groupColumnInfo.isCellEditable(ModelUtils.unWrap(o)); } return columnInfo.isCellEditable(ModelUtils.unWrap(o)); } @Nullable @Override public TableCellRenderer getRenderer(Object o) { Object o1 = ModelUtils.unWrap(o); if (o1 instanceof GrepExpressionGroup) { return groupColumnInfo.getRenderer(o1); } return columnInfo.getRenderer(o1); } @Override public void setValue(Object o, Object value) { Object o1 = ModelUtils.unWrap(o); if (o1 instanceof GrepExpressionGroup) { groupColumnInfo.setValue(ModelUtils.unWrap(o), value); } else { columnInfo.setValue(ModelUtils.unWrap(o), value); } } @Nullable @Override public TableCellEditor getEditor(Object o) { Object o1 = ModelUtils.unWrap(o); if (o1 instanceof GrepExpressionGroup) { return groupColumnInfo.getEditor(o1); } return columnInfo.getEditor(o1); } @Nullable @Override public Object valueOf(Object o) { Object o1 = ModelUtils.unWrap(o); if (o1 instanceof GrepExpressionGroup) { return groupColumnInfo.valueOf(o1); } return columnInfo.valueOf(o1); } }