git-svn-id: https://samskivert.googlecode.com/svn/trunk@922 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: MultiLineLabel.java,v 1.6 2002/10/04 21:28:23 shaper Exp $
|
||||
// $Id: MultiLineLabel.java,v 1.7 2002/11/12 01:15:19 mdb Exp $
|
||||
//
|
||||
// samskivert library - useful routines for java programs
|
||||
// Copyright (C) 2002 Walter Korman
|
||||
@@ -38,6 +38,12 @@ import com.samskivert.util.StringUtil;
|
||||
public class MultiLineLabel extends JComponent
|
||||
implements SwingConstants, LabelStyleConstants
|
||||
{
|
||||
/** A layout constant used by {@link #setLayout}. */
|
||||
public static final int GOLDEN = HORIZONTAL+VERTICAL+1;
|
||||
|
||||
/** A layout constant used by {@link #setLayout}. */
|
||||
public static final int NONE = GOLDEN+1;
|
||||
|
||||
/**
|
||||
* Constructs an empty multi line label.
|
||||
*/
|
||||
@@ -48,34 +54,37 @@ public class MultiLineLabel extends JComponent
|
||||
|
||||
/**
|
||||
* Constructs a multi line label that displays the supplied text with
|
||||
* center-alignment.
|
||||
* center-alignment. The default layout is all on one line.
|
||||
*
|
||||
* @see #setLayout
|
||||
*/
|
||||
public MultiLineLabel (String text)
|
||||
{
|
||||
this(text, HORIZONTAL, CENTER);
|
||||
this(text, CENTER);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a multi line label that displays the supplied text with
|
||||
* the specified alignment. The text will be laid out all on one
|
||||
* line.
|
||||
* the specified alignment. The default layout is all on one line.
|
||||
*
|
||||
* @see #setLayout
|
||||
*/
|
||||
public MultiLineLabel (String text, int align)
|
||||
{
|
||||
this(text, HORIZONTAL, align);
|
||||
this(text, align, NONE, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a multi line label that displays the supplied text with
|
||||
* the specified constraints and alignment. Constraints should be one
|
||||
* of {@link #HORIZONTAL}, {@link #VERTICAL}, or <code>-1</code> if no
|
||||
* constraints are desired.
|
||||
* the specified alignment. The default layout is all on one line.
|
||||
*
|
||||
* @see #setLayout
|
||||
*/
|
||||
public MultiLineLabel (String text, int constrain, int align)
|
||||
public MultiLineLabel (String text, int align, int constrain, int size)
|
||||
{
|
||||
_constrain = constrain;
|
||||
_label = new Label(text);
|
||||
_label.setAlignment(align);
|
||||
noteConstraints(constrain, size);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,14 +100,47 @@ public class MultiLineLabel extends JComponent
|
||||
|
||||
/**
|
||||
* Sets the constraints to be used when laying out the label.
|
||||
*
|
||||
* @param constrain {@link #HORIZONTAL} or {@link #VERTICAL} or {@link
|
||||
* #GOLDEN} if the label should be laid out in a rectangle whose
|
||||
* bounds approximate the golden ratio.
|
||||
* @param size the width or height respectively to be targeted by the
|
||||
* label. This is ignored if <code>constrain</code> is {@link
|
||||
* #GOLDEN}.
|
||||
*/
|
||||
public void setConstraints (int constrain)
|
||||
public void setLayout (int constrain, int size)
|
||||
{
|
||||
_constrain = constrain;
|
||||
noteConstraints(constrain, size);
|
||||
_dirty = true;
|
||||
repaint();
|
||||
}
|
||||
|
||||
/** Helper function. */
|
||||
protected void noteConstraints (int constrain, int size)
|
||||
{
|
||||
switch (constrain) {
|
||||
case HORIZONTAL:
|
||||
_label.setTargetWidth(size);
|
||||
break;
|
||||
|
||||
case VERTICAL:
|
||||
_label.setTargetHeight(size);
|
||||
break;
|
||||
|
||||
case GOLDEN:
|
||||
_label.setGoldenLayout();
|
||||
break;
|
||||
|
||||
case NONE:
|
||||
// nothing doing
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new IllegalArgumentException(
|
||||
"Invalid constraint orientation " + constrain);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the text displayed by this label.
|
||||
*/
|
||||
@@ -194,10 +236,6 @@ public class MultiLineLabel extends JComponent
|
||||
{
|
||||
super.doLayout();
|
||||
|
||||
switch (_constrain) {
|
||||
case HORIZONTAL: _label.setTargetWidth(getWidth()); break;
|
||||
case VERTICAL: _label.setTargetHeight(getHeight()); break;
|
||||
}
|
||||
layoutLabel();
|
||||
}
|
||||
|
||||
@@ -244,9 +282,6 @@ public class MultiLineLabel extends JComponent
|
||||
/** The label we're displaying. */
|
||||
protected Label _label;
|
||||
|
||||
/** The constraints we apply to the label text. */
|
||||
protected int _constrain = HORIZONTAL;
|
||||
|
||||
/** The off-axis alignment with which the label is positioned. */
|
||||
protected int _offalign;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user