Skip to content
This repository has been archived by the owner on Jul 11, 2022. It is now read-only.

Commit

Permalink
[BZ 1076126] Update Group Definitions UI to show DGs from plugins
Browse files Browse the repository at this point in the history
When listing dynaGroups we now show additional first column having an icon
of user - in case of regular dyna group or plugin - in case definition comes
from plugin. When user edits plugin-based definition we also warn him once
he attemts to save such expression. Within this commit i18n messages for old
template names has been removed.
  • Loading branch information
Libor Zoubek committed Apr 22, 2014
1 parent 414a2a6 commit a4629ad
Show file tree
Hide file tree
Showing 10 changed files with 71 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class ResourceGroupDefinitionCriteria extends Criteria {

public ResourceGroupDefinitionCriteria() {

}
}

@Override
public Class<GroupDefinition> getPersistentClass() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ protected List<DataSourceField> addDataSourceFields() {
MSG.view_dynagroup_nextCalculationTime());
fields.add(nextCalculationTimeField);

DataSourceTextField cannedExpressionField = new DataSourceTextField("cannedExpression", "Origin");
fields.add(cannedExpressionField);

return fields;
}

Expand Down Expand Up @@ -203,7 +206,7 @@ public ListGridRecord copyValues(GroupDefinition from) {
record.setAttribute("description", from.getDescription());
record.setAttribute("expression", from.getExpression());
record.setAttribute("recursive", from.isRecursive());

record.setAttribute("cannedExpression", from.getCannedExpression());
// convert millis to minutes for display
long recalcIntervalLong = from.getRecalculationInterval() / (60 * 1000);
record.setAttribute("recalculationInterval", convertLongToString(recalcIntervalLong));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,13 @@
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.resource.group.DuplicateExpressionTypeException;
import org.rhq.coregui.client.CoreGUI;
import org.rhq.coregui.client.ImageManager;
import org.rhq.coregui.client.PermissionsLoadedListener;
import org.rhq.coregui.client.PermissionsLoader;
import org.rhq.coregui.client.ViewPath;
import org.rhq.coregui.client.components.table.AbstractTableAction;
import org.rhq.coregui.client.components.table.EscapedHtmlCellFormatter;
import org.rhq.coregui.client.components.table.IconField;
import org.rhq.coregui.client.components.table.TableActionEnablement;
import org.rhq.coregui.client.components.table.TableSection;
import org.rhq.coregui.client.components.table.TimestampCellFormatter;
Expand Down Expand Up @@ -66,6 +68,28 @@ protected void configureTable() {
idField.setType(ListGridFieldType.INTEGER);
idField.setWidth(50);

IconField originField = new IconField("cannedExpression");
originField.setCellFormatter(new CellFormatter() {
public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
String icon = "global/User_16.png";
if (value!=null) {
icon = "global/Plugin_16.png";
}
return "<img src=\"" + ImageManager.getFullImagePath(icon) + "\" />";
}
});
originField.setShowHover(true);
originField.setHoverCustomizer(new HoverCustomizer() {
public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) {
String expr = record.getAttribute("cannedExpression");
String displayName = MSG.view_dynagroup_originHoverUser();
if (expr!=null) {
displayName = MSG.view_dynagroup_originHoverPlugin(expr.replaceAll(":.*", ""));
}
return displayName;
}
});

ListGridField nameField = new ListGridField("name", MSG.common_title_name(), 150);
nameField.setCellFormatter(new EscapedHtmlCellFormatter());
ListGridField descriptionField = new ListGridField("description", MSG.common_title_description());
Expand Down Expand Up @@ -122,7 +146,7 @@ public String hoverHTML(Object value, ListGridRecord record, int rowNum, int col
}
});

setListGridFields(idField, nameField, descriptionField, expressionField, lastCalculationTimeField,
setListGridFields(idField, originField, nameField, descriptionField, expressionField, lastCalculationTimeField,
nextCalculationTimeField);

addTableAction(MSG.common_button_delete(), MSG.common_msg_areYouSure(), new AbstractTableAction(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.DSOperationType;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.util.BooleanCallback;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
Expand Down Expand Up @@ -155,15 +157,19 @@ public void setGroupDefinition(final GroupDefinition groupDefinition) {
IButton saveButton = new EnhancedIButton(MSG.common_button_save());
saveButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
saveForm(form, dynaGroupChildrenView, false);
if (form.validate()) {
saveFormCheckCannedExpr(form, dynaGroupChildrenView, false);
}
}
});

IButton recalculateButton = new EnhancedIButton(MSG.view_dynagroup_saveAndRecalculate());
recalculateButton.setWidth(150);
recalculateButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
saveForm(form, dynaGroupChildrenView, true);
if (form.validate()) {
saveFormCheckCannedExpr(form, dynaGroupChildrenView, true);
}
}
});

Expand All @@ -184,7 +190,6 @@ public void onClick(ClickEvent clickEvent) {
addMember(form);
addMember(buttonLayout);
addMember(dynaGroupChildrenView);

markForRedraw();
}
public void setCannedExpressions(final ArrayList<CannedGroupExpression> list) {
Expand All @@ -194,10 +199,24 @@ public void setCannedExpressions(final ArrayList<CannedGroupExpression> list) {
}
templateSelector.setValueMap(cannedExpressions.keySet().toArray(new String[cannedExpressions.size()]));
}

private void saveFormCheckCannedExpr(final DynamicForm form, final DynaGroupChildrenView dynaGroupChildrenView,
final boolean recalc) {
if (this.groupDefinition.getCannedExpression() != null) {
SC.ask(MSG.view_dynagroup_saveCannedDefWarning(this.groupDefinition.getCannedExpression().replaceAll(":.*", "")), new BooleanCallback() {
public void execute(Boolean confirmed) {
if (confirmed) {
saveForm(form, dynaGroupChildrenView, recalc);
}
}
});
} else {
saveForm(form, dynaGroupChildrenView, recalc);
}
}

private void saveForm(final DynamicForm form, final DynaGroupChildrenView dynaGroupChildrenView,
final boolean recalc) {
if (form.validate()) {
form.saveData(new DSCallback() {
@Override
public void execute(DSResponse response, Object rawData, DSRequest request) {
Expand Down Expand Up @@ -245,7 +264,6 @@ public void execute(DSResponse response, Object rawData, DSRequest request) {
}
}
});
}
}

private void recalculate(final DynaGroupChildrenView dynaGroupChildrenView, int groupDefId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1764,6 +1764,8 @@ view_dynagroup_mixed = Mixed
view_dynagroup_newGroupDefinition = New Group Definition
view_dynagroup_nextCalculationTime = Next Calculation Time
view_dynagroup_permDenied = You do not have permission to view group definitions
view_dynagroup_originHoverPlugin = From {0} plugin
view_dynagroup_originHoverUser = User defined
view_dynagroup_recalcFailure = Failed to recalculate this group definition
view_dynagroup_recalcFailureSelection = Failed to recalculate the selected group definitions
view_dynagroup_recalcSuccessful = You have successfully recalculated this group definition
Expand All @@ -1773,20 +1775,10 @@ view_dynagroup_recalculationInterval = Recalculation Interval (min)
view_dynagroup_recalculationInterval_error = Value must be an integer
view_dynagroup_recursive = Recursive
view_dynagroup_saveAndRecalculate = Save & Recalculate
view_dynagroup_saveCannedDefWarning = You are saving Group definition which comes from plugin [{0}]. If you continue, this definition will detach from plugin thus no longer upgraded. Do you want to continue?
view_dynagroup_saveFailure = Failed to save the group definition named [{0}]
view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]
view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created
view_dynagroup_template_customExpression = Custom Expression...
view_dynagroup_template_downedResources = All resources currently down
view_dynagroup_template_jbossas4_clusters = JBossAS 4 - Clusters
view_dynagroup_template_jbossas4_earClusters = JBossAS 4 - Clustered EARs
view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - All hosting any version of "my" app
view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - All non-secured
view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - Unique versions
view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - Clusters
view_dynagroup_template_platforms = Platform resources in inventory
view_dynagroup_template_rhq_agents = RHQ Agent resources in inventory
view_dynagroup_template_uniqueResourceTypes = Unique resource types in inventory
view_groupConfigEdit_member = Member
view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.
view_groupConfigEdit_saveReminder = You changed some settings - do not forget to save those changes or they will be lost.\n
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2115,6 +2115,8 @@ view_dynagroup_loadDefinitionMissing = Es gibt keine Gruppendefinition mit id [{
view_dynagroup_mixed = Gemischt
view_dynagroup_newGroupDefinition = Neue Gruppen-Definition
view_dynagroup_nextCalculationTime = Zeitpunkt nächste Berechnung
#view_dynagroup_originHoverPlugin = From {0} plugin
#view_dynagroup_originHoverUser = User defined
view_dynagroup_permDenied = Sie haben nicht das Recht die Gruppen Definitionen anzusehen
view_dynagroup_recalcFailure = Fehler beim Neuberechnen dieser Gruppendefinition
view_dynagroup_recalcFailureSelection = Fehler beim Neuberechnen der ausgewählten Gruppendefinitionen
Expand All @@ -2125,20 +2127,10 @@ view_dynagroup_recalculationInterval = Intervall für die Neuberechnung (in Minu
view_dynagroup_recalculationInterval_error = Wert muss ganzzahlig sein
view_dynagroup_recursive = Rekursiv
view_dynagroup_saveAndRecalculate = Speichern & neu berechnen
view_dynagroup_saveCannedDefWarning = Sie speichern eine Gruppendefinition, die vom Plugin [{0}] stammt. Wenn sie fortfahren, wird sie vom Plugin losgelöst und kann nicht mehr vom Plugin aktualisiert werden. Wollen Sie fortfahren?
view_dynagroup_saveFailure = Speichern der Gruppendefiniton mit Namen [{0}] ist fehlgeschlagen
view_dynagroup_saveSuccessful = Sie haben die Gruppendefinition mit Namen [{0}] erfolgreich gespeichert
view_dynagroup_singleSaveFailure = Ein Fehler ist aufgetreten - es hätte eine angelegt werden sonne, anstatt wurden [{0}] angelegt
view_dynagroup_template_customExpression = Benutzerdefinierter Ausdruck...
view_dynagroup_template_downedResources = Alle Ressourcen derzeit außer Betrieb
view_dynagroup_template_jbossas4_clusters = JBossAS 4 - Cluster
view_dynagroup_template_jbossas4_earClusters = JBossAS 4 - Geclusterte EARs
view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - Alle, die eine beliebige Version von "my" App hosten
view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - Alle nicht gesicherten
view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - Eindeutige Versionen
view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - Cluster
view_dynagroup_template_platforms = Plattform Ressourcen im Inventar
view_dynagroup_template_uniqueResourceTypes = Eindeutige Ressourcen-Typen im Inventar
#view_dynagroup_template_rhq_agents = RHQ Agent resources in inventory
view_groupConfigEdit_member = Mitglied
view_groupConfigEdit_noListProps = Listen Eigenschaften werden derzeit nicht für Gruppen Konfigurationen unterstützt.
# #view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1544,6 +1544,8 @@ view_dynagroup_mixed = 혼합
view_dynagroup_newGroupDefinition = 새 그룹 정의
view_dynagroup_nextCalculationTime = 다음 계산 시간
view_dynagroup_permDenied = 그룹 정의를 볼 수 있는 권한이 없습니다
#view_dynagroup_originHoverPlugin = From {0} plugin
#view_dynagroup_originHoverUser = User defined
view_dynagroup_recalcFailure = 이 그룹 정의를 다시 계산하는데 실패했습니다
view_dynagroup_recalcFailureSelection = 선택한 그룹 정의를 다시 계산하는데 실패했습니다
view_dynagroup_recalcSuccessful = 이 그룹 정의를 다시 계산하는데 성공했습니다
Expand All @@ -1552,18 +1554,10 @@ view_dynagroup_recalculate = 다시 계산
view_dynagroup_recalculationInterval = 재 계산 간격 (분)
view_dynagroup_recursive = 재귀
view_dynagroup_saveAndRecalculate = 저장 및 재 계산
#view_dynagroup_saveCannedDefWarning = You are saving Group definition which comes from plugin [{0}]. If you continue, this definition will detach from plugin thus no longer upgraded. Do you want to continue?
view_dynagroup_saveFailure = 그룹 정의 이름 [{0}]의 저장에 실패했습니다
view_dynagroup_saveSuccessful = 그룹 정의 이름 [{0}]의 저장에 성공했습니다
view_dynagroup_singleSaveFailure = 오류가 발생했습니다 - 하나 작성되어야 했지만, 대신 [{0}]개 만들어 졌습니다
view_dynagroup_template_customExpression = 사용자 정의 식...
view_dynagroup_template_downedResources = 모든 리소스를 현재 다운합니다
view_dynagroup_template_jbossas4_clusters = JBossAS 4 - 클러스터
view_dynagroup_template_jbossas4_earClusters = JBossAS 4 - 클러스터 EARs
view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - 안전하지 않은 모든 것
view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - 고유 버전
view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - 클러스터
view_dynagroup_template_platforms = 인벤토리 플랫폼 리소스
#view_dynagroup_template_rhq_agents = RHQ Agent resources in inventory
view_groupConfigEdit_member = 멤버
view_groupConfigEdit_noListProps = 그룹 설정에 현재 지원되지 않는 속성 목록
view_groupConfigEdit_saveReminder = 설정이 변경되었습니다 - 이러한 변경 사항을 저장하는 것을 잊지 마십시오. - 그렇지 않으면 손실됩니다\n
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1776,6 +1776,8 @@ view_dynagroup_loadDefinitionMissing = N�o existe defini��o para o grupo c
view_dynagroup_mixed = Misturado
view_dynagroup_newGroupDefinition = Nova Defini��o de Grupo
view_dynagroup_nextCalculationTime = Pr�ximo c�lculo
view_dynagroup_originHoverPlugin = From {0} plugin
view_dynagroup_originHoverUser = User defined
view_dynagroup_permDenied = Voc� n�o possui permiss�es para visualizar o grupo
view_dynagroup_recalcFailure = Falha ao recalcular essa defini��o
view_dynagroup_recalcFailureSelection = Falha ao recalcular as defini��es de grupo
Expand All @@ -1784,21 +1786,11 @@ view_dynagroup_recalcSuccessfulSelection = As defini��es dos grupos [{0}] f
view_dynagroup_recalculate = Recalcular
#view_dynagroup_recalculationInterval = Intervalo para Recalculo
view_dynagroup_recursive = Recursivo
#view_dynagroup_saveCannedDefWarning = You are saving Group definition which comes from plugin [{0}]. If you continue, this definition will detach from plugin thus no longer upgraded. Do you want to continue?
view_dynagroup_saveAndRecalculate = Salvar e Recalcular
view_dynagroup_saveFailure = Falha ao salvar a defini��o do grupo [{0}]
view_dynagroup_saveSuccessful = Defini��o do grupo [{0}] salva com sucesso!
view_dynagroup_singleSaveFailure = Ocorreu um erro - deveria haver apenas um criado, mas haviam [{0}]
view_dynagroup_template_customExpression = Express�o customizada...
view_dynagroup_template_downedResources = Todos os recursos atualmente indispon�veis
view_dynagroup_template_jbossas4_clusters = JBossAS 4 - Clusters
view_dynagroup_template_jbossas4_earClusters = JBossAS 4 - EARs clusterizados
view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - Todos hospedando qualquer ver�o da aplica��o "my"
view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - Todos sem segura�� habilitada
view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - Vers�es �nicas
view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - Clusters
view_dynagroup_template_platforms = Todas as Plataformas existentes invent�rio
view_dynagroup_template_uniqueResourceTypes = Tipos de Recursos �nicos existentes no Invent�rio
#view_dynagroup_template_rhq_agents = RHQ Agent resources in inventory
view_groupConfigEdit_member = Membro
view_groupConfigEdit_noListProps = Lista de propriedades n\u00E3o suportada atualmente para configura\u00E7\u00F5es em grupo.
##view_groupConfigEdit_saveReminder = You changed some settings - do not forget to save those changes or they will be lost.\n
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1645,6 +1645,8 @@
#view_dynagroup_mixed = Mixed
#view_dynagroup_newGroupDefinition = New Group Definition
#view_dynagroup_nextCalculationTime = Next Calculation Time
#view_dynagroup_originHoverPlugin = From {0} plugin
#view_dynagroup_originHoverUser = User defined
#view_dynagroup_permDenied = You do not have permission to view group definitions
#view_dynagroup_recalcFailure = Failed to recalculate this group definition
#view_dynagroup_recalcFailureSelection = Failed to recalculate the selected group definitions
Expand All @@ -1654,20 +1656,10 @@
#view_dynagroup_recalculationInterval = Recalculation Interval (min)
#view_dynagroup_recursive = Recursive
#view_dynagroup_saveAndRecalculate = Save & Recalculate
#view_dynagroup_saveCannedDefWarning = You are saving Group definition which comes from plugin [{0}]. If you continue, this definition will detach from plugin thus no longer upgraded. Do you want to continue?
#view_dynagroup_saveFailure = Failed to save the group definition named [{0}]
#view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]
#view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created
#view_dynagroup_template_customExpression = Custom Expression...
#view_dynagroup_template_downedResources = All resources currently down
#view_dynagroup_template_jbossas4_clusters = JBossAS 4 - Clusters
#view_dynagroup_template_jbossas4_earClusters = JBossAS 4 - Clustered EARs
#view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - All hosting any version of "my" app
#view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - All non-secured
#view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - Unique versions
#view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - Clusters
#view_dynagroup_template_platforms = Platform resources in inventory
#view_dynagroup_template_uniqueResourceTypes = Unique resource types in inventory
#view_dynagroup_template_rhq_agents = RHQ Agent resources in inventory
#view_groupConfigEdit_member = Member
#view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.
#view_groupConfigEdit_saveReminder = You changed some settings - do not forget to save those changes or they will be lost.\n
Expand Down

0 comments on commit a4629ad

Please sign in to comment.