forums-YrDk4eUcT3KaMJb+
2010-01-22 16:32:35 UTC
Hello!
I am new to jira.
I've got the problem with adding options to my custom field which represented by select list.
As far as I know I need just override getVelocityParameters in my class and tune edit-select.vm
Now I've got enabled plugin but don't see any options except "NONE".
What I like to be answered is:
Which approach should I use to populate the options?
How do I implement a SelectCF properly?
* which classes should I extend or implement?
* what else do I have to know?
Please help me!
That's my class
{code}
package com.atlassian.jira.plugin.customfield.impl;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.customfields.converters.SelectConverter;
import com.atlassian.jira.issue.customfields.converters.StringConverter;
import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.customfields.impl.SelectCFType;
import com.atlassian.jira.issue.customfields.SortableCustomField;
import com.atlassian.jira.issue.customfields.manager.OptionsManager;
import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
import org.apache.log4j.Category;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
public class BoolCFType extends SelectCFType implements SortableCustomField<String>
{
private static final PersistenceFieldType PERSISTENCE_TYPE = PersistenceFieldType.TYPE_LIMITED_TEXT;
private final SelectConverter selectConverter;
private final OptionsManager optionsManager;
public BoolCFType(CustomFieldValuePersister customFieldValuePersister, StringConverter stringConverter,
SelectConverter selectConverter, OptionsManager optionsManager, GenericConfigManager genericConfigManager)
{
super(customFieldValuePersister, stringConverter, selectConverter, optionsManager, genericConfigManager);
this.selectConverter = selectConverter;
this.optionsManager = optionsManager;
}
public String getStringFromSingularObject(Object singularObject)
{
assertObjectImplementsType(String.class, singularObject);
return selectConverter.getString(singularObject);
}
public Object getSingularObjectFromString(String string) throws FieldValidationException
{
return selectConverter.getObject(string);
}
public Map getVelocityParameters(Issue issue, CustomField field, FieldLayoutItem fieldLayoutItem)
{
Map params = super.getVelocityParameters(issue, field, fieldLayoutItem);
List options = new ArrayList();
options.add("TRUE");
options.add("FALSE");
params.put("options", options);
return params;
}
}
{code}
and here
edit-select.vm
/////////////////////////////////////////////////////////////////////////////////////////////////////////
#controlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters.noHeader)
<select name="$customField.id" id="$customField.id">
#if (!$fieldLayoutItem || $fieldLayoutItem.required == false)
<option value="-1">$i18n.getText("common.words.none")</option>
#else
<option value="">$i18n.getText("common.words.none")</option>
#end
#foreach ($option in $options.options)
<option value="$textutils.htmlEncode($option.value)"
#if ($value && $value == $option.value)selected#end
</select>
#controlFooter ($action $fieldLayoutItem.fieldDescription $displayParameters.noHeader)
////////////////////////////////////////////////////////////////////////////////////////////////////
--
Post by Ivan85 - online at:
http://forums.atlassian.com/thread.jspa?forumID=100&threadID=40550
I am new to jira.
I've got the problem with adding options to my custom field which represented by select list.
As far as I know I need just override getVelocityParameters in my class and tune edit-select.vm
Now I've got enabled plugin but don't see any options except "NONE".
What I like to be answered is:
Which approach should I use to populate the options?
How do I implement a SelectCF properly?
* which classes should I extend or implement?
* what else do I have to know?
Please help me!
That's my class
{code}
package com.atlassian.jira.plugin.customfield.impl;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.customfields.converters.SelectConverter;
import com.atlassian.jira.issue.customfields.converters.StringConverter;
import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.customfields.impl.SelectCFType;
import com.atlassian.jira.issue.customfields.SortableCustomField;
import com.atlassian.jira.issue.customfields.manager.OptionsManager;
import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
import org.apache.log4j.Category;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
public class BoolCFType extends SelectCFType implements SortableCustomField<String>
{
private static final PersistenceFieldType PERSISTENCE_TYPE = PersistenceFieldType.TYPE_LIMITED_TEXT;
private final SelectConverter selectConverter;
private final OptionsManager optionsManager;
public BoolCFType(CustomFieldValuePersister customFieldValuePersister, StringConverter stringConverter,
SelectConverter selectConverter, OptionsManager optionsManager, GenericConfigManager genericConfigManager)
{
super(customFieldValuePersister, stringConverter, selectConverter, optionsManager, genericConfigManager);
this.selectConverter = selectConverter;
this.optionsManager = optionsManager;
}
public String getStringFromSingularObject(Object singularObject)
{
assertObjectImplementsType(String.class, singularObject);
return selectConverter.getString(singularObject);
}
public Object getSingularObjectFromString(String string) throws FieldValidationException
{
return selectConverter.getObject(string);
}
public Map getVelocityParameters(Issue issue, CustomField field, FieldLayoutItem fieldLayoutItem)
{
Map params = super.getVelocityParameters(issue, field, fieldLayoutItem);
List options = new ArrayList();
options.add("TRUE");
options.add("FALSE");
params.put("options", options);
return params;
}
}
{code}
and here
edit-select.vm
/////////////////////////////////////////////////////////////////////////////////////////////////////////
#controlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters.noHeader)
<select name="$customField.id" id="$customField.id">
#if (!$fieldLayoutItem || $fieldLayoutItem.required == false)
<option value="-1">$i18n.getText("common.words.none")</option>
#else
<option value="">$i18n.getText("common.words.none")</option>
#end
#foreach ($option in $options.options)
<option value="$textutils.htmlEncode($option.value)"
#if ($value && $value == $option.value)selected#end
$option.value</option>
#end</select>
#controlFooter ($action $fieldLayoutItem.fieldDescription $displayParameters.noHeader)
////////////////////////////////////////////////////////////////////////////////////////////////////
--
Post by Ivan85 - online at:
http://forums.atlassian.com/thread.jspa?forumID=100&threadID=40550