1.16.La clase GanttFont

Bien, en este post a diferencia de los anteriores, no vamos a crear una clase que extienda de la GanttFont pero si que veremos como modificar el tipo de letra de los paneles del Gantt.
Evidentemente yo lo haría más fácil y realizaría esta acción mediante las configuraciones del Gantt, pero quiero que veáis que por código lo podemos modificar todo.

Empecemos.

Lo primero será añadirnos los tipos de letras que deseamos que se muestre en nuestro Gantt; para este ejemplo he tomado dos tipos llamativos como son: la BroadWay y la Vladimir. A parte  he definido un tamaño de letra.

Así que  crearemos unos define de nuestros valores en la clase GanttActiveXVarchart.


//XBB :: http://axlearn2012.blogspot.com.es/ :: XBB_Gantt :: 20141208
class XBB_GanttActiveXVarchart_SchedEmpl extends GanttActiveXVarchart
{
      //Diagram layer

      #define.startEnd('Start-End')

      #define.Broadway('Broadway')
      #define.Cooper('Vladimir Script')
      #define.FontSize(12)
}

Lo que haremos ahora será modificar los siguientes métodos para indicarle la letra y tamaño que se debe utilizar. Básicamente lo que hacen es recuperar la clase GanttFont inicializada y cambiarle los valores.


protected void initLayerFormatField(Name                                 _layerName,
                                                             GanttVcLayerFormatField _ganttVcLayerFormatField)
{
         GanttFont ganttFont;
  
         super(_layerName, _ganttVcLayerFormatField);

         if(_ganttVcLayerFormatField == null)
        {
              throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
         }


        ganttFont = _ganttVcLayerFormatField.parmTextFont();
  

        if(ganttFont == null)
       {
            throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
        }


       // set font of the layer text
      ganttFont.parmName(#Broadway);


     // set font size of the layer text
     ganttFont.parmSize(#FontSize);
}

protected void initTimeScale(GanttVcTimeScale _ganttVcTimeScale)
{
     GanttFont ganttFont;
  
     super(_ganttVcTimeScale);

     if(_ganttVcTimeScale == null)
    {
         throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
    }


    ganttFont = _ganttVcTimeScale.parmFont();
  

    if(ganttFont == null)
   {
       throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
   }


   ganttFont.parmName(#Cooper);
   ganttFont.parmSize(#FontSize);
}

protected void initTableFormatFieldStandardList(Name _tableFormatName,
                                                                                 GanttVcTableFormatField _ganttVcTableFormatField)
{
        #define.standardListCaption('StandardListCaption')
        #define.standardList('StandardList')

       GanttFont ganttFont;
  
       if(_ganttVcTableFormatField == null)
      {
           throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
      }


      ganttFont = _ganttVcTableFormatField.parmTextFont();
  

      if(ganttFont == null)
     {
          throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
     }


     // set font of the table text
    ganttFont.parmName(#Broadway);
   

    // set font size of the table text
    ganttFont.parmSize(#FontSize);
   

    _ganttVcTableFormatField.parmTextFontColor(this.defaultFontColor());
  

    switch(_tableFormatName)
   {
  

        // table caption
       case #standardListCaption :
              // set background color
             _ganttVcTableFormatField.parmBackColor(this.defaultTableCaptionColor());
             // set text for the table caption columns
             this.setTableFormatFieldConstantText(_ganttVcTableFormatField);
             break;
       // table node
      case #standardList :
            // set background color
           _ganttVcTableFormatField.parmBackColor(this.defaultTableNodeColor());
           break;
      // table groups
      default :
      // set background color
           _ganttVcTableFormatField.parmBackColor(this.defaultTableGroupColor());
      }
}

protected void initTableFormatField(Name _tableFormatName,
                                                            GanttVcTableFormatField _ganttVcTableFormatField)
{
       GanttFont ganttFont;
  super(_tableFormatName, _ganttVcTableFormatField);
 
 
    
if(_ganttVcTableFormatField == null)
      {
           throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
       }


      ganttFont = _ganttVcTableFormatField.parmTextFont();
  

      if(ganttFont == null)
     {
          throw error(strfmt("@SYS27147", classId2Name(classidget(this))));
     }


     ganttFont.parmName(#Broadway);
     ganttFont.parmSize(#FontSize);
}



El resultado de las modificaciones anteriores será lo que veis  en la imagen. El tipo de letra y su tamaño ha sido modificado.


 
 
Si queréis probar a modificar el tipo de letra pero no sabéis que tipo existen, tan solo deberíais entrar en cualquier parte del configurador del Gantt y buscar la propiedad Font y en el campo Fuente tenéis el nombre del tipo de letra.
 
 




Si queréis descargar este ejemplo solo tenéis que presionar en el siguiente enlace.


XBB_GanttActiveXVarchart_SchedEmpl

Descargar el xpo completo.



 

Comentarios