@ -4,12 +4,14 @@ import com.fr.base.Formula;
import com.fr.design.actions.replace.action.content.formula.highlight.javascript.SearchJSHighlightAction ;
import com.fr.design.actions.replace.info.FormulaInfo ;
import com.fr.design.actions.replace.info.base.ITContent ;
import com.fr.design.actions.replace.info.base.SearchTag ;
import com.fr.design.i18n.Toolkit ;
import com.fr.form.event.Listener ;
import com.fr.form.ui.DataControl ;
import com.fr.form.ui.Widget ;
import com.fr.form.ui.container.WScaleLayout ;
import com.fr.form.ui.widget.CRBoundsWidget ;
import com.fr.stable.StableUtils ;
import java.util.List ;
@ -33,12 +35,13 @@ public abstract class AbstractSearchWidgetFormulaAction implements SearchWidgetF
Widget widget = ( Widget ) content . getReplaceObject ( ) ;
//控件值中的公式
searchFormulaFromWidgetValue ( content , formulaInfos ) ;
searchFormulaFromWidgetLabel ( content , formulaInfos ) ;
for ( int i = 0 ; i < widget . getListenerSize ( ) ; i + + ) {
Listener listener = widget . getListener ( i ) ;
ITContent newContent = ITContent . copy ( content ) ;
//控件的事件可以使用的JS有五种,这边统一交给Highlight那边判断超级链接并进行处理
SearchJSHighlightAction jsHighlightAction = SearchJSHighlightAction . getInstance ( ) ;
newContent . addOtherPos ( Toolkit . i18nText ( "Fine-Design_Report_Event" ) , listener . getName ( ) ) ;
newContent . addOtherPos ( Toolkit . i18nText ( "Fine-Design_Report_Event" ) , listener . getName ( ) ) ;
jsHighlightAction . searchJSFormulaFromOther ( formulaInfos , newContent , listener . getAction ( ) ) ;
}
@ -53,8 +56,8 @@ public abstract class AbstractSearchWidgetFormulaAction implements SearchWidgetF
@Override
public void searchFormulaFromWidgetValue ( ITContent content , List < FormulaInfo > formulaInfos ) {
Widget widget = ( Widget ) content . getReplaceObject ( ) ;
if ( widget instanceof WScaleLayout ) {
widget = ( ( CRBoundsWidget ) ( ( WScaleLayout ) widget ) . getWidget ( 0 ) ) . getWidget ( ) ;
if ( widget instanceof WScaleLayout ) {
widget = ( ( CRBoundsWidget ) ( ( WScaleLayout ) widget ) . getWidget ( 0 ) ) . getWidget ( ) ;
}
if ( widget instanceof DataControl ) {
if ( isWidgetValueValid ( ( ( DataControl ) widget ) ) ) {
@ -66,7 +69,23 @@ public abstract class AbstractSearchWidgetFormulaAction implements SearchWidgetF
}
}
private boolean isWidgetValueValid ( DataControl control ) {
public void searchFormulaFromWidgetLabel ( ITContent content , List < FormulaInfo > formulaInfos ) {
Widget widget = ( Widget ) content . getReplaceObject ( ) ;
if ( widget instanceof WScaleLayout ) {
widget = ( ( CRBoundsWidget ) ( ( WScaleLayout ) widget ) . getWidget ( 0 ) ) . getWidget ( ) ;
}
if ( StableUtils . canBeFormula ( widget . getLabelName ( ) ) ) {
ITContent newContent = ITContent . copy ( content ) ;
newContent . addOtherPos ( Toolkit . i18nText ( "Fine-Design_Form_Label_Name" ) ) ;
newContent . setHoldObject ( widget ) ;
newContent . setReplaceObject ( widget . getLabelName ( ) ) ;
newContent . setTag ( SearchTag . WIDGET_LABEL ) ;
formulaInfos . add ( new FormulaInfo ( newContent ) ) ;
}
}
private boolean isWidgetValueValid ( DataControl control ) {
return control . getWidgetValue ( ) ! = null
& & control . getWidgetValue ( ) . getValue ( ) instanceof Formula ;
}