Mig-infocom MiG Calendar Tutorial Manual do Utilizador Página 17

  • Descarregar
  • Adicionar aos meus manuais
  • Imprimir
  • Página
    / 24
  • Índice
  • MARCADORES
  • Avaliado. / 5. Com base em avaliações de clientes
Vista de página 16
MiG InfoCom AB
SVG (Scalable Vector Graphics) format and AShape. SVG is
broader in context but AShape has more flexible layout support and
is more geared towards Java and Java2D. AShape has the ability for
non uniform scaling, a functionality that SVG currently lacks.
There are many concrete classes that implements the AShape
interface. VectorShape, TextShape, ImageShape and
FeatherShape (for blurring) are some of them. It is also very easy
to write your own AShapes if the built in ones don't cover your
particular use case. The AbstractShape implements most of the
boiler plate and all you have to do is extend it and provide the painting
code.
The layout idea behind AShape is that you provide it (actually the
ARootShape) with a reference rectangle and then tell it to paint itself
relative to that rectangle. The AShape itself decides how it should
relate to that rectangle, but it will probably in most cases just cover the
whole of it. Sub shapes of a shape are then placed according to the
bounds that the parent shape actually used. The placement relative to
the Rectangle bounds is normally specified with a PlaceRect, or
rather one of the concrete classes that implement that interface
(AbsRect or AlignRect).
A PlaceRect describes how one Rectangle relates to another
Rectangle, optionally with a reference Dimension (i.e. size). The
PlaceRect handling and a lot of other boiler plate is done in
AbstractShape so you don't have to bother with it normally. That
is also why almost every xxxShape takes a PlaceRect as
argument in its constructor.
The sub shapes can freely relate to its parent's bounds and since the
PlaceRect implementations have a very flexible coordinating
system they can do this in a very advanced and dynamic fashion. It is
for instance quite easy to describe something like: 'use the right 50%
of the parent's bounds but no more than 10 pixels, right justified if
constrained'.
But how does siblings interact? With ShapeLayouts. Every
AShape has a ShapeLayout that actually gives the sub shapes
theirs reference rectangle. If no layout is specified explicitly the
DefaultShapeLayout is used which will layout all sub shapes
with the exact bounds of the parent (on which it is installed). All sibling
will thus get the same reference bounds to used for placing
themselves and there are no sibling cooperation.
RowShapeLayout and DockingShapeLayout are delivered by
default and how they work and are supposed to be used is specified in
MiG Calendar Tutorial Page 17 / 24
Vista de página 16
1 2 ... 12 13 14 15 16 17 18 19 20 21 22 23 24

Comentários a estes Manuais

Sem comentários