2 /*******************************************************************************
3 * Copyright (c) 2013 University of Stuttgart.
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * and the Apache License 2.0 which both accompany this distribution,
7 * and are available at http://www.eclipse.org/legal/epl-v10.html
8 * and http://www.apache.org/licenses/LICENSE-2.0
11 * Oliver Kopp - initial API and implementation and/or initial documentation
12 *******************************************************************************/
14 <%@tag description="Toggle buttons for visual appearance" pageEncoding="UTF-8"%>
16 var JQUERY_ANIMATION_DURATION = 400;
18 function doShowOrHide(elements, showThem) {
19 if (elements.length == 0) {
20 // e.g., no properties defined
28 window.setTimeout(function() {
29 jsPlumb.repaint(elements.parent());
30 }, JQUERY_ANIMATION_DURATION);
33 function showIds(cb) {
35 if ($("div.NodeTemplateShape.selected").size() > 0) {
36 elements = $("div.NodeTemplateShape.selected div.id.nodetemplate");
38 elements = $("div.NodeTemplateShape:visible div.id.nodetemplate");
41 if ($(cb).hasClass("active")) {
46 // no repaint required as no nodes are moved
47 // window.setTimeout(jsPlumb.repaintEverything, JQUERY_ANIMATION_DURATION);
51 * Toogles visiblity of both node types and relationship types
53 function showTypes(showThem) {
54 // types at node templates
56 var typesOfRelationshipTemplates;
57 if ($("div.NodeTemplateShape.selected").size() > 0) {
58 elements = $("div.NodeTemplateShape.selected div.type.nodetemplate");
59 // TODO: We should put into typesOfRelationshipTemplates all type divs of relationshiptemplates connecting highlighted node templates
60 // This should be done when doing the multiselect
61 // And there should be a second if similar to the node templates for relationship templates
62 typesOfRelationshipTemplates = $(".todo");
64 elements = $("div.NodeTemplateShape:visible div.type.nodetemplate");
65 // TODO: we should check for a single relationship template being selected
66 typesOfRelationshipTemplates = $(".relationshipTypeLabel");
71 typesOfRelationshipTemplates.fadeIn();
74 typesOfRelationshipTemplates.fadeOut();
77 // no repaint required as no nodes are moved
78 // window.setTimeout(jsPlumb.repaintEverything, JQUERY_ANIMATION_DURATION);
81 function showOrHideProperties(showThem) {
83 if ($("div.NodeTemplateShape.selected").size() > 0) {
84 elements = $("div.NodeTemplateShape.selected > div.propertiesContainer");
86 elements = $("div.NodeTemplateShape:visible > div.propertiesContainer");
88 doShowOrHide(elements, showThem);
92 function showOrHideDeploymentArtifacts(showThem) {
94 if ($("div.NodeTemplateShape.selected").size() > 0) {
95 elements = $("div.NodeTemplateShape:visible.selected > div.deploymentArtifactsContainer");
97 elements = $("div.NodeTemplateShape:visible > div.deploymentArtifactsContainer");
99 doShowOrHide(elements, showThem);
102 function showOrHideReqCaps(showThem) {
104 if ($("div.NodeTemplateShape.selected").size() > 0) {
105 elements = $("div.NodeTemplateShape:visible.selected > div.requirementsContainer, div.NodeTemplateShape:visible.selected > div.capabilitiesContainer");
107 elements = $("div.NodeTemplateShape:visible > div.requirementsContainer, div.NodeTemplateShape:visible > div.capabilitiesContainer");
109 doShowOrHide(elements, showThem);
112 function showOrHidePolicies(showThem) {
114 if ($("div.NodeTemplateShape.selected").size() > 0) {
115 elements = $("div.NodeTemplateShape:visible.selected > div.policiesContainer");
117 elements = $("div.NodeTemplateShape:visible > div.policiesContainer");
119 doShowOrHide(elements, showThem);
123 <div class="btn-group" data-toggle="buttons-checkbox" id="toggleButtons">
124 <button class="btn btn-default" id="toggleIdVisibility" onclick="showIds(this);">Ids</button>
125 <button class="btn active" id="toggleTypeVisibility" onclick="showTypes(!$(this).hasClass('active'));">Types</button>
126 <button class="btn btn-default" id="togglePropertiesVisibility" onclick="showOrHideProperties(!$(this).hasClass('active'));">Properties</button>
127 <button class="btn btn-default" id="toggleDeploymentArtifactsVisibility" onclick="showOrHideDeploymentArtifacts(!$(this).hasClass('active'));">Deployment Artifacts</button>
128 <button class="btn btn-default" id="toggleReqCapsVisibility" onclick="showOrHideReqCaps(!$(this).hasClass('active'));">Requirements & Capabilities</button>
129 <button class="btn btn-default" id="PoliciesVisibility" onclick="showOrHidePolicies(!$(this).hasClass('active'));">Policies</button>