Соединитель Mylyn Trac не показывает атрибут «Серьезность» в редакторе запросов - PullRequest
0 голосов
/ 12 января 2012

Мы недавно решили начать использовать поле Severity в нашем проекте Trac. Тем не менее, я не могу найти способ заставить поле появиться в редакторе запросов для плагина Mylyn для Eclipse - что бы я ни пытался, поля там нет.

Оно отображается в веб-интерфейсе, и если я открою задачу в Mylyn, я могу установить уровень серьезности там (поэтому в какой-то момент Mylyn действительно понимает, что атрибут используется), но не появляется в диалоговом окне запроса.

У меня есть

  • Убедитесь, что все задачи имеют уровень серьезности.
  • Перезапущенное затмение
  • Синхронизировано с хранилищем
  • Хит "Обновить атрибуты из хранилища" несколько раз
  • Переустановил Mylyn

без успеха. Что еще можно попробовать?

Уточнение: Речь идет не о редактировании билетов. Речь идет о запросе заявок из хранилища, используя правый клик в списке задач -> «новый запрос ...».

Вот как выглядит форма, которую я вижу:

enter image description here

Я тоже хочу где-нибудь там поле для серьезности.

Ответы [ 3 ]

1 голос
/ 23 мая 2012

Вы должны получить исходный код для TracQueryPage.java и добавить список для «серьезности».

  1. http://grepcode.com/file/repository.grepcode.com/java/eclipse.org/3.6.2/org.eclipse.mylyn.trac/ui/3.4.2/org/eclipse/mylyn/internal/trac/ui/wizard/TracQueryPage.java?av=f

  2. Создать пустойпроект плагина в Eclipse (например, именованный trac-connector-patch)

  3. Найдите org.eclipse.mylyn.trac.ui_3.6.0.v20110608-1400.jar в папке плагина и скопируйтеMANIFEST.MF к папке META-INF проекта плагина.Удалите все строки, начинающиеся с «Name:» и «SHA1-Digest:», затем измените Bundle-Symbolic-Name на

    Bundle-SymbolicName: org.eclipse.mylyn.trac.ui-patched; singleton: =true

  4. Скопируйте исходный файл для TracQueryPage.java в исходную папку как

    src \ org \ eclipse \ mylyn \ internal \ trac \ ui \ wizard \ TracQueryPage.java

  5. Исправьте путь сборки проекта:

    • удалите экспорт из файла MANIFEST.MF для org.eclipse.mylyn.internal.trac.ui и org.eclipse.mylyn.internal.trac.ui.editor
    • используйте контекстное меню «Инструменты PDE -> обновить путь к классам»
    • , если по-прежнему есть ошибки для файла org.eclipse.swt, добавьтеSWT-файл jar из папки подключаемого модуля eclipse в качестве внешнего jar-файла для bpath сборки проекта (например, org.eclipse.swt.win32.win32.x86_64_3.7.1.v3738a.jar)
  6. Измените TracQueryPage

    // add a new list search field
    private ListSearchField severityField;
    ...
    
    protected Control createTicketAttributes(Composite control) {
        Composite group = new Composite(control, SWT.NONE);
        GridLayout layout = new GridLayout();
    
        layout.numColumns = 5; // add a column
    
        group.setLayout(layout);
        GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
        gd.horizontalSpan = 1;
        group.setLayoutData(gd);
    
        Label label = new Label(group, SWT.LEFT);
        label.setText(Messages.TracQueryPage_Status);
    
        label = new Label(group, SWT.LEFT);
        label.setText(Messages.TracQueryPage_Resolution);
    
        label = new Label(group, SWT.LEFT);
        label.setText(Messages.TracQueryPage_Type);
    
        label = new Label(group, SWT.LEFT);
        label.setText(Messages.TracQueryPage_Priority);
    
        label = new Label(group, SWT.LEFT);
        label.setText("Severity"); // TODO use a property
    
        statusField = new ListSearchField("status"); //$NON-NLS-1$
        statusField.createControls(group, STATUS_HEIGHT);
    
        resolutionField = new ListSearchField("resolution"); //$NON-NLS-1$
        resolutionField.createControls(group, STATUS_HEIGHT);
    
        typeField = new ListSearchField("type"); //$NON-NLS-1$
        typeField.createControls(group, STATUS_HEIGHT);
    
        priorityField = new ListSearchField("priority"); //$NON-NLS-1$
        priorityField.createControls(group, STATUS_HEIGHT);
    
        // add the severityField
        severityField = new ListSearchField("severity"); //$NON-NLS-1$
        severityField.createControls(group, STATUS_HEIGHT);
    
        return group;
    }
    
    private void updateAttributesFromRepository(final boolean force) {
        ...
    
        statusField.setValues(client.getTicketStatus());
        resolutionField.setValues(client.getTicketResolutions());
        typeField.setValues(client.getTicketTypes());
        priorityField.setValues(client.getPriorities());
    
        // also update the severities
        severityField.setValues(client.getSeverities());
    
        componentField.setValues(client.getComponents());
        versionField.setValues(client.getVersions());
        milestoneField.setValues(client.getMilestones());    
    }
    
  7. Теперь вы готовы указать путь к банке плагина (например, org.eclipse.mylyn.trac.ui_3.6.0.v20110608-1400.jar):

    • перезаписать класс TracQueryPage.class измененным классом
    • , убрав строки «Name:» и «SHA1-Digest:» для класса TracQueryPage.class из MANIFEST.MF
  8. Замените плагин на ваш исправленный плагин.И перезапустите eclipse.

  9. Или загрузите уже исправленный плагин: http://franke.ms/download/org.eclipse.mylyn.trac.ui_3.6.0.v20110608-1400-patched.zip

0 голосов
/ 24 января 2012

Глядя на код, кажется, что невозможно выполнить запрос в зависимости от серьезности. Возможно, вы захотите открыть запрос функции на https://bugs.eclipse.org/bugs. Еще лучше было бы, если бы вы предоставили патч. :)

0 голосов
/ 12 января 2012

У него нет помеченного поля в редакторе форм, но рядом с именем есть значок.Нажав на этот значок, вы можете определить серьезность.

enter image description here

...