2011-12-29 4 views
1

Я планирую график трендов в GWT. В бетоне, AnnotatedTimeLine. Мой Java-код:Дата и время в Annotated TimeLine GWT

Runnable onLoadCallback = new Runnable() { 
     public void run() { 
      ArrayList<AttributeDTO> occAttrs = new ArrayList<AttributeDTO>(); 
      for(AttributeDTO attr : attrs){ 
       if(attr.getName().toLowerCase().contains("temp")){ 
        occAttrs.add(attr); 
       } 
      } 
      DataTable data = DataTable.create(); 
      data.addColumn(ColumnType.DATE, "Date"); 
      data.addColumn(ColumnType.NUMBER, "Temperature"); 
      data.addRows(occAttrs.size()); 
      RootPanel.get().add(new Label(occAttrs.toString())); 
      DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy.MM.dd 'at' hh:mm:ss aaa"); 
      for(int i = 0; i < occAttrs.size(); i++){ 
       data.setValue(i, 0, dtf.parse(occAttrs.get(i).getDate())); 
       data.setValue(i, 1, Integer.valueOf(occAttrs.get(i).getValue())); 
      } 

      AnnotatedTimeLine.Options options = AnnotatedTimeLine.Options.create(); 
      options.setDisplayAnnotations(true); 
      options.setDisplayZoomButtons(true); 
      options.setScaleType(AnnotatedTimeLine.ScaleType.ALLFIXED); 
      options.setDateFormat("yyyy.MM.dd 'at' hh:mm:ss aaa"); 
      options.setLegendPosition(AnnotatedTimeLine.AnnotatedLegendPosition.SAME_ROW); 
      AnnotatedTimeLine atl = new AnnotatedTimeLine(data, options, "600px", "400px"); 

      vPanel.add(atl); 
     } 

    }; 
    VisualizationUtils.loadVisualizationApi(onLoadCallback, AnnotatedTimeLine.PACKAGE); 

Ну, когда я показываю график я получаю следующий рисунок:

enter image description here

В оси х у меня есть дата без времени. Я хотел бы включить время. Как я мог его получить?

Спасибо заранее!

King уважать и веселого Рождества!

+0

Я также пробовал с ColumnType.DATETIME вместо ColumnType.DATE, но результат тот же –

ответ

1

Либо установите формат MMMM dd, yyyy и попробуйте или попробуйте, не устанавливая формат.

+0

Это невозможно. Дата атрибута в списке occAttrs - тип String. Затем я определяю DateTimeFormat для получения типа даты –

+0

Я думаю, что хранение данных или datetime должно работать до тех пор, пока объект даты передается. В соответствии с документом http://gwt-google-apis.googlecode.com/svn/javadoc/visualization/1.1/index.html вы можете напрямую установить объект данных –

+0

Я передаю объект Date, но ему требуется предыдущий parse, потому что это атрибут String –

0

Это ясно объясняется в документации api в google, что поддерживается только DATE, а datetime не поддерживается.

Я столкнулся с тем же требованием, чтобы хранить несколько значений в одну и ту же дату. Вы нашли какую-либо другую библиотеку, которая может справиться с этой проблемой правильно?