/* * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.guvnor.client.qa; import org.drools.guvnor.client.resources.Images; import org.drools.guvnor.client.rpc.AnalysisFactUsage; import org.drools.guvnor.client.rpc.AnalysisFieldUsage; import org.drools.guvnor.client.util.Format; import org.drools.guvnor.client.messages.Constants; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.TreeItem; /** * * @author Toni Rikkola */ class FactUsagesItem extends TreeItem { private Constants constants = GWT.create( Constants.class ); private Images images = GWT.create( Images.class ); public FactUsagesItem(AnalysisFactUsage[] factUsages) { setStyleName( "analysis-Report" ); setHTML( Format.format( "<img src='{0}'/><b>{1}</b>", new Image( images.factTemplate() ).getUrl(), constants.ShowFactUsages() ) ); setUserObject( new HTML( Format.format( "<img src='{0}'/><b>{1}:</b>", new Image( images.factTemplate() ).getUrl(), constants.FactUsages() ) ) ); doFacts( factUsages ); } private void doFacts(AnalysisFactUsage[] factUsages) { for ( AnalysisFactUsage factUsage : factUsages ) { TreeItem fact = new TreeItem( Format.format( "<img src='{0}'/>", new Image( images.fact() ).getUrl() ) + factUsage.name ); TreeItem fieldList = doFields( factUsage.fields ); fact.addItem( fieldList ); fieldList.setState( true ); addItem( fact ); fact.setState( true ); } } private TreeItem doFields(AnalysisFieldUsage[] fields) { TreeItem fieldList = new TreeItem( constants.FieldsUsed() ); for ( AnalysisFieldUsage fieldUsage : fields ) { TreeItem field = new TreeItem( Format.format( "<img src='{0}'/>", new Image( images.field() ).getUrl() ) + fieldUsage.name ); fieldList.addItem( field ); TreeItem ruleList = doAffectedRules( fieldUsage ); field.addItem( ruleList ); field.setState( true ); } return fieldList; } private TreeItem doAffectedRules(AnalysisFieldUsage fieldUsage) { TreeItem ruleList = new TreeItem( constants.ShowRulesAffected() ); ruleList.setUserObject( new HTML( constants.RulesAffected() ) ); for ( String ruleName : fieldUsage.rules ) { ruleList.addItem( new TreeItem( Format.format( "<img src='{0}'/>", new Image( images.ruleAsset() ).getUrl() ) + ruleName ) ); } return ruleList; } }