| .. | .. |
|---|
| 173 | 173 | theRenderer = this; |
|---|
| 174 | 174 | } |
|---|
| 175 | 175 | |
|---|
| 176 | + CameraPane(Object3D o, Camera cam, boolean withcontext) |
|---|
| 177 | + { |
|---|
| 178 | + super(defaultcaps, null, withcontext?glcontext:null, null); |
|---|
| 179 | + |
|---|
| 180 | + //System.out.println("AMERICA AREA = " + (9458886 + 9210755 + 8480395 + 2736391 + 1943018 + 1289475 + 1141569 + 1069350 + 911559 + 721229 + 395886 + 377972 + 246700 + 211156 + 173985 + 141133 + 118279 + 112079 + 108523)); |
|---|
| 181 | + glcontext = getContext(); |
|---|
| 182 | + |
|---|
| 183 | + cameras = new Camera[2]; |
|---|
| 184 | + targetLookAts = new cVector[2]; |
|---|
| 185 | + |
|---|
| 186 | + SetCamera(cam); |
|---|
| 187 | + |
|---|
| 188 | + SetLight(new Camera(new cVector(10, 10, -20))); |
|---|
| 189 | + |
|---|
| 190 | + object = o; |
|---|
| 191 | + |
|---|
| 192 | + setBackground(Color.white); |
|---|
| 193 | + |
|---|
| 194 | + addKeyListener(this); |
|---|
| 195 | + addMouseListener(this); |
|---|
| 196 | + addMouseMotionListener(this); |
|---|
| 197 | + addMouseWheelListener(this); |
|---|
| 198 | + //System.out.println("addGLEventListener: " + this); |
|---|
| 199 | + addGLEventListener(this); |
|---|
| 200 | + |
|---|
| 201 | +// pingthread.start(); // may 2013 |
|---|
| 202 | + } |
|---|
| 203 | + |
|---|
| 176 | 204 | static boolean AntialiasingEnabled() |
|---|
| 177 | 205 | { |
|---|
| 178 | 206 | return CURRENTANTIALIAS > 0; |
|---|
| .. | .. |
|---|
| 672 | 700 | //assert (cam.hAspect == 0); |
|---|
| 673 | 701 | cam.hAspect = 0; |
|---|
| 674 | 702 | lightCamera = cam; |
|---|
| 675 | | - } |
|---|
| 676 | | - |
|---|
| 677 | | - CameraPane(Object3D o, Camera cam, boolean withcontext) |
|---|
| 678 | | - { |
|---|
| 679 | | - super(defaultcaps, null, withcontext?glcontext:null, null); |
|---|
| 680 | | - |
|---|
| 681 | | - //System.out.println("AMERICA AREA = " + (9458886 + 9210755 + 8480395 + 2736391 + 1943018 + 1289475 + 1141569 + 1069350 + 911559 + 721229 + 395886 + 377972 + 246700 + 211156 + 173985 + 141133 + 118279 + 112079 + 108523)); |
|---|
| 682 | | - glcontext = getContext(); |
|---|
| 683 | | - |
|---|
| 684 | | - cameras = new Camera[2]; |
|---|
| 685 | | - targetLookAts = new cVector[2]; |
|---|
| 686 | | - |
|---|
| 687 | | - SetCamera(cam); |
|---|
| 688 | | - |
|---|
| 689 | | - SetLight(new Camera(new cVector(10, 10, -20))); |
|---|
| 690 | | - |
|---|
| 691 | | - object = o; |
|---|
| 692 | | - |
|---|
| 693 | | - setBackground(Color.white); |
|---|
| 694 | | - |
|---|
| 695 | | - addKeyListener(this); |
|---|
| 696 | | - addMouseListener(this); |
|---|
| 697 | | - addMouseMotionListener(this); |
|---|
| 698 | | - addMouseWheelListener(this); |
|---|
| 699 | | - //System.out.println("addGLEventListener: " + this); |
|---|
| 700 | | - addGLEventListener(this); |
|---|
| 701 | | - |
|---|
| 702 | | -// pingthread.start(); // may 2013 |
|---|
| 703 | 703 | } |
|---|
| 704 | 704 | |
|---|
| 705 | 705 | private static void ApplyTransform(GL gl, Mat4f xform) |
|---|
| .. | .. |
|---|
| 7 | 7 | |
|---|
| 8 | 8 | public interface Constants |
|---|
| 9 | 9 | { |
|---|
| 10 | | - |
|---|
| 11 | 10 | //public static final double pi = math.PI; |
|---|
| 12 | 11 | //public static final double radian = 0.01745329; |
|---|
| 13 | 12 | public static final String EOL = System.getProperty("line.separator"); |
|---|
| .. | .. |
|---|
| 15 | 14 | public static final String imageTypes[] = { |
|---|
| 16 | 15 | "gif", "tga", "iff", "ppm", "pgm", "png", "jpeg", "tiff", "sys", "jpg" |
|---|
| 17 | 16 | }; |
|---|
| 17 | + |
|---|
| 18 | 18 | public static final int beigeTheme[][] = { |
|---|
| 19 | 19 | { |
|---|
| 20 | 20 | 104, 95, 90 |
|---|
| .. | .. |
|---|
| 34 | 34 | 255, 255, 255 |
|---|
| 35 | 35 | } |
|---|
| 36 | 36 | }; |
|---|
| 37 | | - |
|---|
| 37 | + public static final int yellowTheme[][] = { |
|---|
| 38 | + { |
|---|
| 39 | + 104, 95, 90 |
|---|
| 40 | + }, { |
|---|
| 41 | + 164, 150, 145 // |
|---|
| 42 | + }, { |
|---|
| 43 | + 204, 190, 185 |
|---|
| 44 | + }, { |
|---|
| 45 | + 111, 111, 111 |
|---|
| 46 | + }, { |
|---|
| 47 | + 163, 159, 159 |
|---|
| 48 | + }, { |
|---|
| 49 | + //240, 226, 200 // |
|---|
| 50 | + 240, 226, 200 // |
|---|
| 51 | + }, { |
|---|
| 52 | + 0, 0, 0 |
|---|
| 53 | + }, { |
|---|
| 54 | + 255, 255, 255 |
|---|
| 55 | + } |
|---|
| 56 | + }; |
|---|
| 38 | 57 | } |
|---|
| .. | .. |
|---|
| 742 | 742 | try |
|---|
| 743 | 743 | { |
|---|
| 744 | 744 | MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); |
|---|
| 745 | | - //MetalLookAndFeel.setCurrentTheme(new Theme(Constants.beigeTheme)); |
|---|
| 745 | + MetalLookAndFeel.setCurrentTheme(new Theme(Constants.yellowTheme)); |
|---|
| 746 | 746 | UIManager.setLookAndFeel(new MetalLookAndFeel()); |
|---|
| 747 | + //UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); |
|---|
| 748 | + //UIManager.setLookAndFeel("com.apple.laf.AquaLookAndFeel"); |
|---|
| 749 | + //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); |
|---|
| 747 | 750 | } catch (Exception e) |
|---|
| 748 | 751 | { |
|---|
| 749 | 752 | } |
|---|
| .. | .. |
|---|
| 31 | 31 | boolean timeline; |
|---|
| 32 | 32 | boolean wasFullScreen; |
|---|
| 33 | 33 | |
|---|
| 34 | + GroupEditor callee; |
|---|
| 35 | + JFrame frame; |
|---|
| 36 | + |
|---|
| 34 | 37 | // SCRIPT |
|---|
| 35 | 38 | |
|---|
| 36 | 39 | transient JFrame textpanel = null; |
|---|
| .. | .. |
|---|
| 127 | 130 | |
|---|
| 128 | 131 | static GridBagConstraints aConstraints; |
|---|
| 129 | 132 | static GridBagConstraints aWindowConstraints; |
|---|
| 130 | | - GroupEditor callee; |
|---|
| 131 | | - JFrame frame; |
|---|
| 133 | + |
|---|
| 132 | 134 | static int GRIDWIDTH = 100; // 4; |
|---|
| 133 | 135 | |
|---|
| 134 | 136 | public void closeUI() |
|---|
| .. | .. |
|---|
| 1369 | 1371 | //worldPane.add(bigPanel); |
|---|
| 1370 | 1372 | //worldPane.add(worldPanel); |
|---|
| 1371 | 1373 | /**/ |
|---|
| 1372 | | - frame.getContentPane().add(/*"Center",*/framePanel); |
|---|
| 1374 | + //frame.getContentPane().add(/*"Center",*/framePanel); |
|---|
| 1375 | + frame.add(/*"Center",*/framePanel); |
|---|
| 1373 | 1376 | //frame.getContentPane().add(/*"Center",*/ worldPane); |
|---|
| 1374 | 1377 | |
|---|
| 1375 | 1378 | // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc); |
|---|
| .. | .. |
|---|
| 7 | 7 | import java.awt.*; |
|---|
| 8 | 8 | import java.awt.event.*; |
|---|
| 9 | 9 | |
|---|
| 10 | +public class AddFieldPanel extends JPanel |
|---|
| 11 | +{ |
|---|
| 12 | + public JTextField name = new JTextField(12); |
|---|
| 13 | + public JComboBox typeChoices = new JComboBox(); |
|---|
| 10 | 14 | |
|---|
| 11 | | -public class AddFieldPanel extends JPanel { |
|---|
| 12 | | - public JTextField name=new JTextField(12); |
|---|
| 13 | | - public JComboBox typeChoices=new JComboBox(); |
|---|
| 14 | | - public AddFieldPanel() |
|---|
| 15 | | - { |
|---|
| 16 | | - for (String choice: FieldFormatCatalog.classNames()) |
|---|
| 17 | | - typeChoices.addItem(choice); |
|---|
| 18 | | - setLayout(new GridLayout(2,2)); |
|---|
| 19 | | - add(new JLabel("Field Name")); |
|---|
| 20 | | - add(name); |
|---|
| 21 | | - add(new JLabel("Field Type")); |
|---|
| 22 | | - add(typeChoices); |
|---|
| 23 | | - } |
|---|
| 15 | + public AddFieldPanel() |
|---|
| 16 | + { |
|---|
| 17 | + for (String choice : FieldFormatCatalog.classNames()) |
|---|
| 18 | + { |
|---|
| 19 | + typeChoices.addItem(choice); |
|---|
| 20 | + } |
|---|
| 21 | + setLayout(new GridLayout(2, 2)); |
|---|
| 22 | + add(new JLabel("Field Name")); |
|---|
| 23 | + add(name); |
|---|
| 24 | + add(new JLabel("Field Type")); |
|---|
| 25 | + add(typeChoices); |
|---|
| 26 | + } |
|---|
| 24 | 27 | } |
|---|
| .. | .. |
|---|
| 43 | 43 | |
|---|
| 44 | 44 | public ArrayDB(String[] fieldNames, Class[] types, String source) |
|---|
| 45 | 45 | { |
|---|
| 46 | | - this.schema = new Schema(); |
|---|
| 46 | + this.schema = new Schema(false); |
|---|
| 47 | 47 | this.source = source; |
|---|
| 48 | 48 | int n = fieldNames.length; |
|---|
| 49 | 49 | fields = new Field[n]; |
|---|
| .. | .. |
|---|
| 29 | 29 | |
|---|
| 30 | 30 | public BasicDB(String source) |
|---|
| 31 | 31 | { |
|---|
| 32 | | - this(new Schema(), source); |
|---|
| 32 | + this(new Schema(true), source); |
|---|
| 33 | 33 | } |
|---|
| 34 | 34 | |
|---|
| 35 | 35 | public BasicDB(Schema schema, String source) |
|---|
| .. | .. |
|---|
| 1 | 1 | package timeflow.data.db; |
|---|
| 2 | +import timeflow.data.time.RoughTime; |
|---|
| 2 | 3 | |
|---|
| 3 | 4 | import java.util.*; |
|---|
| 4 | 5 | |
|---|
| .. | .. |
|---|
| 6 | 7 | public class Schema implements Iterable<Field> |
|---|
| 7 | 8 | { |
|---|
| 8 | 9 | |
|---|
| 10 | + public Schema(boolean withDateField) |
|---|
| 11 | + { |
|---|
| 12 | + add(new Field("Time", RoughTime.class, 0)); |
|---|
| 13 | + add(new Field("Name", String.class, 0)); |
|---|
| 14 | + } |
|---|
| 15 | + |
|---|
| 9 | 16 | private Map<String, Field> schema = new HashMap<String, Field>(); |
|---|
| 10 | 17 | private List<Field> fieldList = new ArrayList<Field>(); // so we preserve field order. |
|---|
| 11 | 18 | |
|---|
| .. | .. |
|---|
| 13 | 13 | public static final TimeUnit HOUR = new TimeUnit("Hours", Calendar.HOUR_OF_DAY, 60 * 60 * 1000L, "HH:mm", "MMM d yyyy HH:mm"); |
|---|
| 14 | 14 | public static final TimeUnit MINUTE = new TimeUnit("Minutes", Calendar.MINUTE, 60 * 1000L, ":mm", "MMM d yyyy HH:mm"); |
|---|
| 15 | 15 | public static final TimeUnit SECOND = new TimeUnit("Seconds", Calendar.SECOND, 1000L, ":ss", "MMM d yyyy HH:mm:ss"); |
|---|
| 16 | | - public static final TimeUnit REALTIME = new TimeUnit("Realtime", Calendar.MILLISECOND, 1L, ":SS", "HH:mm:ss.SS"); |
|---|
| 16 | + public static final TimeUnit REALTIME = new TimeUnit("Realtime", Calendar.MILLISECOND, 1L, ".SS", "HH:mm:ss.SS"); |
|---|
| 17 | 17 | |
|---|
| 18 | 18 | public static final TimeUnit DECADE = multipleYears(10); |
|---|
| 19 | 19 | public static final TimeUnit CENTURY = multipleYears(100); |
|---|
| .. | .. |
|---|
| 238 | 238 | |
|---|
| 239 | 239 | public String format(Date date) |
|---|
| 240 | 240 | { |
|---|
| 241 | | - return format.format(date); |
|---|
| 241 | + return format.format(date); |
|---|
| 242 | 242 | } |
|---|
| 243 | 243 | |
|---|
| 244 | 244 | public String formatFull(Date date) |
|---|
| .. | .. |
|---|
| 49 | 49 | // parsers.add(new DateTimeParser("MMM/dd/yyyy HH:mm", TimeUnit.SECOND)); |
|---|
| 50 | 50 | // parsers.add(new DateTimeParser("MM/dd/yy HH:mm", TimeUnit.SECOND)); |
|---|
| 51 | 51 | // parsers.add(new DateTimeParser("MMM dd yyyy HH:mm:ss", TimeUnit.SECOND)); |
|---|
| 52 | | - parsers.add(new DateTimeParser("HH:mm:ss:SS", TimeUnit.REALTIME)); |
|---|
| 52 | + parsers.add(new DateTimeParser("HH:mm:ss.SS", TimeUnit.REALTIME)); |
|---|
| 53 | 53 | // parsers.add(new DateTimeParser("MM/dd/yyyy HH:mm:ss", TimeUnit.SECOND)); |
|---|
| 54 | 54 | // parsers.add(new DateTimeParser("MMM dd yyyy HH:mm:ss zzzzzzzz", TimeUnit.SECOND)); |
|---|
| 55 | 55 | // parsers.add(new DateTimeParser("EEE MMM dd HH:mm:ss zzzzzzzz yyyy", TimeUnit.SECOND)); |
|---|
| .. | .. |
|---|
| 6 | 6 | import java.net.URL; |
|---|
| 7 | 7 | import java.util.*; |
|---|
| 8 | 8 | |
|---|
| 9 | | -public class FieldFormatCatalog { |
|---|
| 9 | +public class FieldFormatCatalog |
|---|
| 10 | +{ |
|---|
| 11 | + private static Map<String, FieldFormat> formatTable = new HashMap<String, FieldFormat>(); |
|---|
| 12 | + private static Map<Class, FieldFormat> classTable = new HashMap<Class, FieldFormat>(); |
|---|
| 10 | 13 | |
|---|
| 11 | | - private static Map<String, FieldFormat> formatTable=new HashMap<String, FieldFormat>(); |
|---|
| 12 | | - private static Map<Class, FieldFormat> classTable=new HashMap<Class, FieldFormat>(); |
|---|
| 14 | + static |
|---|
| 15 | + { |
|---|
| 16 | + for (FieldFormat f : listFormats()) |
|---|
| 17 | + { |
|---|
| 18 | + formatTable.put(f.getHumanName(), f); |
|---|
| 19 | + classTable.put(f.getType(), f); |
|---|
| 20 | + } |
|---|
| 21 | + } |
|---|
| 13 | 22 | |
|---|
| 14 | | - static |
|---|
| 15 | | - { |
|---|
| 16 | | - for (FieldFormat f: listFormats()) |
|---|
| 17 | | - { |
|---|
| 18 | | - formatTable.put(f.getHumanName(), f); |
|---|
| 19 | | - classTable.put(f.getType(), f); |
|---|
| 20 | | - } |
|---|
| 21 | | - } |
|---|
| 22 | | - |
|---|
| 23 | | - static FieldFormat[] listFormats() |
|---|
| 24 | | - { |
|---|
| 25 | | - return new FieldFormat[] {new FormatDateTime(), new FormatString(), |
|---|
| 26 | | - new FormatStringArray(), new FormatDouble(), new FormatURL()}; |
|---|
| 27 | | - } |
|---|
| 28 | | - |
|---|
| 29 | | - public static Iterable<String> classNames() |
|---|
| 30 | | - { |
|---|
| 31 | | - return formatTable.keySet(); |
|---|
| 32 | | - } |
|---|
| 33 | | - |
|---|
| 34 | | - public static String humanName(Class c){ |
|---|
| 35 | | - return getFormat(c).getHumanName(); |
|---|
| 36 | | - } |
|---|
| 37 | | - |
|---|
| 23 | + static FieldFormat[] listFormats() |
|---|
| 24 | + { |
|---|
| 25 | + return new FieldFormat[] |
|---|
| 26 | + { |
|---|
| 27 | + new FormatDateTime(), new FormatString(), |
|---|
| 28 | + new FormatStringArray(), new FormatDouble(), new FormatURL() |
|---|
| 29 | + }; |
|---|
| 30 | + } |
|---|
| 38 | 31 | |
|---|
| 39 | | - public static FieldFormat getFormat(Class c) { |
|---|
| 40 | | - FieldFormat f= classTable.get(c); |
|---|
| 41 | | - if (f==null) |
|---|
| 42 | | - System.out.println("Warning: no FieldFormat for "+c); |
|---|
| 43 | | - return f; |
|---|
| 44 | | - } |
|---|
| 32 | + public static Iterable<String> classNames() |
|---|
| 33 | + { |
|---|
| 34 | + return formatTable.keySet(); |
|---|
| 35 | + } |
|---|
| 45 | 36 | |
|---|
| 46 | | - |
|---|
| 47 | | - public static Class javaClass(String humanName) |
|---|
| 48 | | - { |
|---|
| 49 | | - Class c=formatTable.get(humanName).getType(); |
|---|
| 50 | | - if (c==null) |
|---|
| 51 | | - System.out.println("Warning: no class for "+humanName); |
|---|
| 52 | | - return c; |
|---|
| 53 | | - } |
|---|
| 37 | + public static String humanName(Class c) |
|---|
| 38 | + { |
|---|
| 39 | + return getFormat(c).getHumanName(); |
|---|
| 40 | + } |
|---|
| 41 | + |
|---|
| 42 | + public static FieldFormat getFormat(Class c) |
|---|
| 43 | + { |
|---|
| 44 | + FieldFormat f = classTable.get(c); |
|---|
| 45 | + if (f == null) |
|---|
| 46 | + { |
|---|
| 47 | + System.out.println("Warning: no FieldFormat for " + c); |
|---|
| 48 | + } |
|---|
| 49 | + return f; |
|---|
| 50 | + } |
|---|
| 51 | + |
|---|
| 52 | + public static Class javaClass(String humanName) |
|---|
| 53 | + { |
|---|
| 54 | + Class c = formatTable.get(humanName).getType(); |
|---|
| 55 | + if (c == null) |
|---|
| 56 | + { |
|---|
| 57 | + System.out.println("Warning: no class for " + humanName); |
|---|
| 58 | + } |
|---|
| 59 | + return c; |
|---|
| 60 | + } |
|---|
| 54 | 61 | } |
|---|
| .. | .. |
|---|
| 87 | 87 | colors.put("timeline.unspecified.color", new Color(0, 53, 153)); |
|---|
| 88 | 88 | colors.put("highlight.color", new Color(0, 53, 153)); |
|---|
| 89 | 89 | |
|---|
| 90 | | - ints.put("timeline.datelabel.height", 20); |
|---|
| 90 | + ints.put("timeline.datelabel.height", 10); |
|---|
| 91 | 91 | ints.put("timeline.item.height.min", 16); |
|---|
| 92 | 92 | } |
|---|
| 93 | 93 | |
|---|
| .. | .. |
|---|
| 5 | 5 | import timeflow.data.db.DBUtils; |
|---|
| 6 | 6 | import timeflow.data.time.*; |
|---|
| 7 | 7 | import timeflow.model.*; |
|---|
| 8 | + |
|---|
| 8 | 9 | //import timeflow.views.CalendarView.CalendarPanel; |
|---|
| 9 | 10 | //import timeflow.views.CalendarView.ScrollingCalendar; |
|---|
| 10 | 11 | import timeflow.vis.Mouseover; |
|---|
| .. | .. |
|---|
| 40 | 41 | public TimelineView(TimeflowModel model) |
|---|
| 41 | 42 | { |
|---|
| 42 | 43 | super(model); |
|---|
| 44 | + |
|---|
| 43 | 45 | visuals = new TimelineVisuals(model); |
|---|
| 44 | 46 | grid = new AxisRenderer(visuals); |
|---|
| 45 | 47 | timeline = new TimelineRenderer(visuals); |
|---|
| .. | .. |
|---|
| 55 | 57 | |
|---|
| 56 | 58 | TimelineSlider slider = new TimelineSlider(visuals, 24 * 60 * 60 * 1000L, new Runnable() |
|---|
| 57 | 59 | { |
|---|
| 58 | | - |
|---|
| 59 | 60 | @Override |
|---|
| 60 | 61 | public void run() |
|---|
| 61 | 62 | { |
|---|
| 62 | 63 | redraw(); |
|---|
| 63 | 64 | } |
|---|
| 64 | 65 | }); |
|---|
| 66 | + |
|---|
| 65 | 67 | bottom.add(slider, BorderLayout.CENTER); |
|---|
| 66 | 68 | |
|---|
| 67 | 69 | controls = new JPanel(); |
|---|
| .. | .. |
|---|
| 70 | 72 | |
|---|
| 71 | 73 | // top part of grid: zoom buttons. |
|---|
| 72 | 74 | ComponentCluster buttons = new ComponentCluster("Zoom"); |
|---|
| 75 | + |
|---|
| 73 | 76 | //ImageIcon zoomOutIcon = new ImageIcon("images/zoom_out.gif"); |
|---|
| 74 | 77 | JButton zoomIn = new JButton("In 1/2X"); |
|---|
| 75 | 78 | buttons.addContent(zoomIn); |
|---|
| .. | .. |
|---|
| 57 | 57 | g.setColor(t.unit.isDayOrLess() && (dayOfWeek == 1 || dayOfWeek == 7) |
|---|
| 58 | 58 | ? new Color(245, 245, 245) : new Color(240, 240, 240)); |
|---|
| 59 | 59 | |
|---|
| 60 | | - g.fillRect(x0, y, x1 - x0 - 1, h); |
|---|
| 60 | + g.fillRect(x0, y, x1 - x0, h); |
|---|
| 61 | 61 | g.setColor(Color.white); |
|---|
| 62 | | - g.drawLine(x1 - 1, y, x1 - 1, y + h); |
|---|
| 62 | + g.drawLine(x1, y, x1, y + h); |
|---|
| 63 | 63 | g.drawLine(x0, y + h, x1, y + h); |
|---|
| 64 | | - objectLocations.add(new Mouseover(new Interval(start, end), x0, y, x1 - x0 - 1, h)); |
|---|
| 64 | + objectLocations.add(new Mouseover(new Interval(start, end), x0, y, x1 - x0, h)); |
|---|
| 65 | 65 | |
|---|
| 66 | 66 | g.setFont(model.getDisplay().timeLabel()); |
|---|
| 67 | 67 | String label = full ? t.unit.formatFull(start) : t.unit.format(new Date(start)); |
|---|
| 68 | | - int tx = x0 + 3; |
|---|
| 69 | | - int ty = y + h - 5; |
|---|
| 68 | + |
|---|
| 69 | + if (!full) |
|---|
| 70 | + full = false; |
|---|
| 71 | + |
|---|
| 72 | + int tx = x0; |
|---|
| 73 | + int ty = y + h; |
|---|
| 70 | 74 | g.setColor(full ? Color.darkGray : Color.gray); |
|---|
| 71 | 75 | int sw = model.getDisplay().timeLabelFontMetrics().stringWidth(label); |
|---|
| 72 | | - if (sw < x1 - tx - 3) |
|---|
| 76 | + if (true) // sw < x1 - tx) |
|---|
| 73 | 77 | { |
|---|
| 74 | 78 | g.drawString(label, tx, ty); |
|---|
| 75 | 79 | } else |
|---|
| .. | .. |
|---|
| 79 | 83 | { |
|---|
| 80 | 84 | label = label.substring(0, c); |
|---|
| 81 | 85 | sw = model.getDisplay().timeLabelFontMetrics().stringWidth(label); |
|---|
| 82 | | - if (sw < x1 - tx - 3) |
|---|
| 86 | + //if (sw < x1 - tx) |
|---|
| 83 | 87 | { |
|---|
| 84 | 88 | g.drawString(label, tx, ty); |
|---|
| 85 | 89 | } |
|---|
| .. | .. |
|---|
| 44 | 44 | |
|---|
| 45 | 45 | public static List<AxisTicMarks> allRelevant(long start, long end) |
|---|
| 46 | 46 | { |
|---|
| 47 | | - return allRelevant(start, end, 40); |
|---|
| 47 | + return allRelevant(start, end, 4000); |
|---|
| 48 | 48 | } |
|---|
| 49 | 49 | |
|---|
| 50 | 50 | public static AxisTicMarks histoTics(long start, long end) |
|---|
| .. | .. |
|---|
| 68 | 68 | public static List<AxisTicMarks> allRelevant(long start, long end, long maxTics) |
|---|
| 69 | 69 | { |
|---|
| 70 | 70 | List<AxisTicMarks> list = new ArrayList<AxisTicMarks>(); |
|---|
| 71 | | - |
|---|
| 72 | 71 | |
|---|
| 73 | 72 | for (int i = 0; i < units.length; i++) |
|---|
| 74 | 73 | { |
|---|
| .. | .. |
|---|
| 8 | 8 | |
|---|
| 9 | 9 | public class TimelineTrack implements Comparable |
|---|
| 10 | 10 | { |
|---|
| 11 | | - |
|---|
| 12 | 11 | String label; |
|---|
| 13 | 12 | List<VisualAct> visualActs = new ArrayList<VisualAct>(); |
|---|
| 14 | 13 | int y0, y1; |
|---|
| .. | .. |
|---|
| 15 | 15 | */ |
|---|
| 16 | 16 | public class TimelineVisuals |
|---|
| 17 | 17 | { |
|---|
| 18 | | - |
|---|
| 19 | 18 | private Map<String, TimelineTrack> trackTable = new HashMap<String, TimelineTrack>(); |
|---|
| 20 | 19 | ArrayList<TimelineTrack> trackList = new ArrayList<TimelineTrack>(); |
|---|
| 20 | + |
|---|
| 21 | 21 | private TimeScale timeScale = new TimeScale(); |
|---|
| 22 | 22 | private Rectangle bounds = new Rectangle(); |
|---|
| 23 | 23 | private boolean frameChanged; |
|---|