Archive

Archive for July, 2008

Flex i automatycznie skalowane Canvas

July 30th, 2008 No comments

W technologii Adobe Flex jest coś takiego jak płótno – Canvas. Jeżeli na tym płótnie położymy zbyt wiele obiektów, to Flex automatycznie narysuje suwaki (ScrollBar). Ja zamiast suwaków wolę skalować. To znaczy, gdy położę na płótnie jakieś elementy które z niego wystają to Flex skaluje zawartość zamiast rysować suwaki. Zrobiłem to dość prosto.

package eu.jakubiak.ui
{
  import mx.containers.Canvas;
  import mx.core.ScrollPolicy;

  public class ScaledCanvas extends Canvas
  {
    public function ScaledCanvas()
    {
      super();
      horizontalScrollPolicy = ScrollPolicy.OFF;
      verticalScrollPolicy = ScrollPolicy.OFF;
    }
    
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
      super.updateDisplayList(unscaledWidth,unscaledHeight);
      var mx:Number = measuredWidth / scaleX;
      var my:Number = measuredHeight / scaleY;
      if(width < mx || height < my) {
        var sx:Number = width / mx;
        var sy:Number = height / my;
        if(Math.max(Math.abs(sy - scaleY),Math.abs(sx - scaleX))>0.01) {
          var s:Number = Math.min( sx, sy );
          this.scaleX = s;
          this.scaleY = s;
        } 
      } else if ( width > mx && height > my && ( scaleX != 1 || scaleY != 1 ) ) {
        scaleX = 1;
        scaleY = 1;
      }
    }
  }
}

Jest to użyteczne, gdy na przykład mamy koszyk z elementami przeciąganymi techniką drag&drop. Gdy włożymy do koszyka za dużo elementów to koszyk się pomniejsza zamiast rysować suwaki.

Categories: FLEX Tags:

Wyłączenie testów maven poprzez konfigurację

July 25th, 2008 No comments

Aby wyłączyć cykl testów z procesu budowania aplikacji wystarczy uruchomić maven z opcją:

mvn –Dmaven.test.skip=true clean install

Jednak to nie do końca mi pasuje. Potrzebuję wyłączyć testy poprzez konfigurację. Plik settings.xml wygląda tak:

<?xml version=“1.0″ encoding=“UTF-8″?>

<settings xmlns=“http://maven.apache.org/POM/4.0.0″ xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

    xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd”>

    <profiles>

        <profile>

            <id>skiptest</id>

            <properties>

                <maven.test.skip>true</maven.test.skip>

            </properties>

        </profile>

        <profile>

            <id>test</id>

            <properties>

                <maven.test.skip>false</maven.test.skip>

            </properties>

        </profile>

    </profiles>

    <activeProfiles>

        <activeProfile>skiptest</activeProfile>

    </activeProfiles>

</settings>

Używając tej konfiguracji maven uruchomi się bez testów. Oczywiście włączenie testów jest możliwe:

mvn –Ptest clean install

Nie należy nadużywać automatycznego wyłączania testów z cyklu budowania aplikacji. Moja konfiguracja jest dozwolona tylko w szczególnych przypadkach.

Categories: Java Tags: