2015-10-12 69 views
1

我在Sonar中創建了一個自定義小部件來顯示特定項目的一些數據。列表中有3個項目,只有其中一個應顯示此小部件。如何在SonarQube中設置自定義小部件的範圍?

我試着設置Widget Scope @WidgetScope(value = PROJECT)。也試過不設置任何東西,因爲默認範圍應該是Project

我正在使用v5.1.2 SonarQube。

但它仍然顯示在所有項目上有相同的數據。

這裏是代碼我使用:

import org.sonar.api.web.AbstractRubyTemplate; 
import org.sonar.api.web.Description; 
import org.sonar.api.web.RubyRailsWidget; 
import org.sonar.api.web.UserRole; 
import org.sonar.api.web.WidgetCategory; 
import org.sonar.api.web.WidgetProperties; 
import org.sonar.api.web.WidgetProperty; 
import org.sonar.api.web.WidgetPropertyType; 
import org.sonar.api.web.WidgetScope; 
import org.sonar.api.resources.Project; 
import static org.sonar.api.web.WidgetScope.PROJECT; 


@UserRole(UserRole.USER) 
@Description("An Internal Plugin to display some data in a project") 
@WidgetCategory("some-data Plugin") 
@WidgetScope(value = PROJECT) 
@WidgetProperties({ 
    @WidgetProperty(key = "Index",type=WidgetPropertyType.STRING 
), 
}) 
public class OneMoreRubyWidget extends AbstractRubyTemplate implements RubyRailsWidget { 

    @Override 
    public String getId() { 
    return "SomeData"; 
    } 

    @Override 
    public String getTitle() { 
    return "SomeData"; 
    } 

    protected String getTemplatePath() { 
      return "/example/somedata.html.erb"; 

    } 
} 

有什麼辦法,我可以從聲納儀表盤拿到「項目名稱」,這樣我可以在widget爲不同的項目返回不同的值?

+0

你能顯示somedata.html.erb的代碼嗎?如果您想在某些條件下隱藏小部件,則必須在此處進行更改。 –

回答

0

最好的辦法是在沒有相關數據的情況下禁止顯示小部件,然後僅存儲相關項目的數據。

幾個小部件已經有條件顯示。看看this Widget Lab widget這使得顯示條件。

相關問題