1 package fr.ove.openmath.jome.ctrlview.bidim;
2
3 import java.awt.*;
4 import fr.ove.openmath.jome.ctrlview.bidim.DisplayLayout;
5 import fr.ove.openmath.jome.ctrlview.bidim.Display;
6 import fr.ove.openmath.jome.ctrlview.bidim.Bar;
7 import fr.ove.openmath.jome.ctrlview.bidim.selection.events.SelectionEvent;
8 import fr.ove.openmath.jome.model.*;
9 import fr.ove.utils.FontInfo;
10
11 /***
12 * A layout manager that lays components to be displayed as a fraction.
13 *
14 * @author © 1999 DIRAT Laurent
15 * @version 2.0 15/12/1999
16 */
17 public class FractionLayout extends BetweenOperatorLayout {
18 /***
19 * Computes the size of the display according to its children size (if any),
20 * and its different attributes.
21 * @return the size of the display.
22 */
23 public Dimension computeAttributes() {
24 SymbolDisplay displayBar = null;
25 Bar fractionBar = null;
26
27 updateLevel(displayToLay.getLevel());
28
29
30
31
32
33
34 displayBar = (SymbolDisplay) displayToLay.getComponent(0);
35 displayBar.setWidth(0);
36 fractionBar = (Bar) displayBar.getSymbol();
37 fractionBar.setWidth(0);
38
39 fractionBar.setHeight(FontInfo.getLineThickness(displayToLay, displayToLay.getFont()));
40
41 displayBar.setComputeAttributes(true);
42
43
44
45 Dimension dim = super.computeAttributes();
46
47
48
49
50 fractionBar.setWidth(dim.width + 8);
51 displayBar.setSize(fractionBar.getSize());
52
53 dim.width = displayBar.getWidth();
54 displayToLay.setSize(dim);
55
56 return dim;
57 }
58
59 /***
60 * Returns the display of the operator
61 */
62 public Display createOperatorDisplay() {
63 SymbolDisplay fractionBar = new SymbolDisplay(displayToLay.getGraphicContext(), new Bar());
64
65 fractionBar.setIsSymbolOperatorDisplay(true);
66
67 return fractionBar;
68 }
69 }