Подсказка в Dojo Charting появляется вне графика - PullRequest
0 голосов
/ 20 января 2019

Значение для моей подсказки отображается вне графика внизу в виде текста.Я вижу похожую проблему в уроках додзё, например.здесь ..

https://dojotoolkit.org/documentation/tutorials/1.10/charting/demo/monthly-sales-legend.html

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

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

Контроль клиентов.

    <xp:div id="chartContracts" style="width: 500px; height: 300px;padding-    top:8px"></xp:div>

<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[
require([
    "dojox/charting/Chart",
    "dojox/charting/plot2d/Columns",
    "dojox/charting/themes/Minty",
    "dojox/charting/action2d/Tooltip",
    "dojox/charting/axis2d/Default",        
    "dojo/number",
    "dojo/currency",
    "dojo/domReady!"                        
     ], 
    function(Chart,Columns,Minty,Tooltip) {
    var chart1 = new Chart("#{id:chartContracts}");

    chart1.addPlot("default",{type: Columns,gap:2}
    );
     var tip = new Tooltip(chart1,"default");
    // Add axes
   var varNames = #{contractBean.axisXAxis};
   var funcLabels = function(text) {
        return varNames[text];
    }
    chart1.addAxis("y", {vertical:true,});
   chart1.addAxis("x", {labelFunc:funcLabels, font:"normal normal normal 8pt Tahoma",minorTicks:true,rotation:-90, maxLabelCharCount:11,
   });
      chart1.setTheme(Minty);
     var data = #{contractBean.chartContractsData};
        for (var key in data) {
        chart1.addSeries(key, data[key]);
            };

    chart1.render();

});]]></xp:this.value>
            </xp:scriptBlock>

Управляемый компонент, предоставляющий данные, allContracts представляет собой список объектов контракта, например.название, стоимость, прибыль и т. д.

public void setChartContracts(){
        JsonJavaArray jjaXAxis = new JsonJavaArray();
        JsonJavaObject jjoContracts = new JsonJavaObject();
        jjaXAxis.add("");
        ArrayList<Object> seriesContracts=new ArrayList<Object>();
        Iterator<Contract> it = allContracts.iterator();
        while(it.hasNext()){
            Contract entry = (Contract) it.next();
            Double actTO = entry.getActualTO();

            if(actTO >999.99){ //We only want contracts with a value greater than 999.99
            HashMap<String,Object> mapContracts = new HashMap<String,Object>();
            int actProfit = entry.getActualProfit().intValue();
            mapContracts.put("y",actProfit);
            String col = actProfit<0.00 ? "#ff1a1a" : "#00cc66"; //Colour the columns, green positive red negative.
            mapContracts.put("fill",col);
            mapContracts.put("stroke","");
            mapContracts.put("tooltip","£"+actProfit);
            seriesContracts.add(mapContracts);
            jjaXAxis.add(entry.getCustomerName());
            }
        }
    jjoContracts.put("contracts",seriesContracts);
    chartContractsData = jjoContracts.toString();
    System.out.println(chartContractsData);
    axisXAxis = jjaXAxis.toString();    
    }

1 Ответ

0 голосов
/ 21 января 2019

Не повезло в попытке удалить AMD, как предложил Пер, все загружено в темах, и я просто не мог заставить работать различные решения. Поэтому я не могу "использовать оптимизированные во время выполнения ресурсы JS и CSS" в моих приложениях.

Удалось отследить таблицу стилей, которая решит проблему.

/ XSP / .ibmxspres / dojoroot-1.9.7 / Dijit / темы / тундры / tundra.css

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

Если у кого-то есть лучшее решение, я был бы очень признателен за его просмотр.

Редактировать. Мне удалось получить исправление для AMD в моих темах, - мои ресурсы имели синтаксис, в котором работал, когда не в режиме AMD, - им не хватало .js, - я не осознавал, что это останавливало их работу при выборе Использовать среду выполнения оптимизированный Javascript ... Итак, я смог применить исправление к ресурсам библиотек js DataTable, которые вызывали проблему. С помощью отсюда .. AMD Loader отключить, включить в теме

Думаю, я бы поделился, если кто-то еще потратит впустую часть своей жизни на этот вопрос.

Спасибо Пер, ты был прав, как всегда.

...