Как сделать запрос из базы данных с помощью gojs

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

<script>
var $ = go.GraphObject.make;

var myDiagram =
$(go.Diagram, "myDiagramDiv",
{
  initialContentAlignment: go.Spot.Center, // center Diagram contents
  "undoManager.isEnabled": true, // enable Ctrl-Z to undo and Ctrl-Y to redo
  layout: $(go.TreeLayout, // specify a Diagram.layout that arranges trees
            { angle: 90, layerSpacing: 40 })
});

// the template we defined earlier
myDiagram.nodeTemplate =
$(go.Node, "Vertical",
{ background: "#44CCFF" },
$(go.Picture,
  { margin: 10, width: 100, height: 100, background: "red" },
  new go.Binding("source")),
$(go.TextBlock, "Default Text",
  { margin: 12, stroke: "white", font: "bold 13px sans-serif" },
  new go.Binding("text", "name")),
$(go.TextBlock, "Default Text",
  { margin: 12, stroke: "white", font: "bold 13px sans-serif" },
  new go.Binding("text", "position"))
);

// define a Link template that routes orthogonally, with no arrowhead
myDiagram.linkTemplate =
$(go.Link,
{ routing: go.Link.Orthogonal, corner: 5 },
$(go.Shape, { strokeWidth: 3, stroke: "#555" })); // the link shape

var model = $(go.TreeModel);
model.nodeDataArray =
[
 { key: "1",              name: "JAMES BRYAN B. JUVENTUD", position: " (Regional Director)",  source: "james.jpg" },
{ key: "2", parent: "1", name: "VERGIL H. MEDIDAS", position: "OIC",   source:   "vergil.jpg" }

];
myDiagram.model = model;
</script>

person Community    schedule 16.08.2016    source источник
comment
GoJS предоставляет только функциональные возможности уровня представления, что обычно означает только в веб-браузере. Работает ли приведенный выше код при локальном запуске на вашем компьютере? Библиотека GoJS не может узнать, как подключиться к базе данных вашей организации или какую схему она использует. Вы несете ответственность за передачу данных в веб-браузер тем или иным способом, будь то с помощью какой-либо веб-службы, веб-API или даже встроенного в страницу веб-сервером.   -  person Walter Northwoods    schedule 16.08.2016
comment
ОК сэр. @WalterNorthwoods :) Спасибо за информацию.   -  person    schedule 17.08.2016


Ответы (1)


В веб-приложениях Java вы можете использовать сеансовые компоненты для извлечения всех ваших узлов из базы данных и преобразования их в формат JSON и размещения результата (с помощью javascript и CDI Beans) на вашей странице .xhtml, я имею в виду страницу, которая, наконец, показывает ваш график. Также лучше поместить все ваши коды, связанные с GOJS (команды gojs, которые рисуют ваш график), в отдельный файл .js и добавить его в ваш файл .xhtml, как указано в примере ниже.

например, в головной части вашей страницы .xhtml поместите что-то вроде:

<script type="text/javascript" > 
   ....
   var yournodeDataArray = JSON.parse('#{yourCDIBean.extractNodeArray()}');
   ....
</script>
 ..........
<script src="yourGojsDiagram.js"></script>
 ...........

и в вашемCDIBean у вас должно быть что-то вроде следующего кода:

@Named ("yourCDIBean")
@SessionScoped
public class YourCDIBean implements Serializable {
    ......
    //inject your SessionBeans 
    @EJB
    private yoursessionBeanPackage.yourSessionBean  abean ;
    ..............

    public String extractNodeArray() {

       //accessing database by abean that is a SessionBean
       //converting result to jsonArray and then converting it to a string 
       //returning result
    }

Для диаграмм, которые имеют linkDataArray, вы также можете использовать этот способ, а затем вы определяете свою модель с помощью простой следующей команды в файле yourGojsDiagram.js:

yourDiagram.model = new go.GraphLinksModel(yourNodedataarray, yourLinkdataarray);

Я надеюсь, что это поможет кому-то.

person cheky    schedule 14.08.2018