Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/scrollbar.js')
-rw-r--r--extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/scrollbar.js130
1 files changed, 130 insertions, 0 deletions
diff --git a/extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/scrollbar.js b/extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/scrollbar.js
new file mode 100644
index 00000000000..0b7666b652c
--- /dev/null
+++ b/extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/scrollbar.js
@@ -0,0 +1,130 @@
+/*
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+
+var svgNS = "http://www.w3.org/2000/svg";
+var xlinkNS = "http://www.w3.org/1999/xlink";
+
+function ScrollBar(contentId,
+ steps,
+ scrollBarX,
+ scrollBarY,
+ scrollBarHeight,
+ scrolledHeight,
+ arrowWidth,
+ upArrowId, downArrowId,
+ cursorId, cursorHeight){
+ this.content = document.getElementById(contentId);
+ this.steps = steps;
+ this.curStep = 0;
+ this.scrollBarHeight = scrollBarHeight;
+ this.scrolledHeight = scrolledHeight;
+ this.arrowWidth = arrowWidth;
+ this.cursorHeight = cursorHeight;
+
+ //
+ // First, add the elements which make up the scroll bar
+ //
+ var insertAt = this.content.getParentNode().getParentNode();
+
+ //
+ // Add the up arrow
+ //
+ var upArrow = document.createElementNS(svgNS, 'use');
+ upArrow.setAttributeNS(xlinkNS, 'href', upArrowId);
+ upArrow.setAttributeNS(null, 'x', scrollBarX);
+ upArrow.setAttributeNS(null, 'y', scrollBarY);
+ insertAt.appendChild(upArrow);
+
+ //
+ // Add the down arrow
+ //
+ var downArrow = document.createElementNS(svgNS, 'use');
+ downArrow.setAttributeNS(xlinkNS, 'href', downArrowId);
+ downArrow.setAttributeNS(null, 'x', scrollBarX);
+ downArrow.setAttributeNS(null, 'y', scrollBarY + scrollBarHeight - arrowWidth);
+ insertAt.appendChild(downArrow);
+
+ //
+ // Add the cursor
+ //
+ var cursor = document.createElementNS(svgNS, 'use');
+ cursor.setAttributeNS(xlinkNS, 'href', cursorId);
+ cursor.setAttributeNS(null, 'x', scrollBarX);
+ cursor.setAttributeNS(null, 'y', scrollBarY + arrowWidth);
+
+ this.cursor = document.createElementNS(svgNS, 'g');
+ this.cursor.appendChild(cursor);
+ insertAt.appendChild(this.cursor);
+
+ //
+ // Now, add event handling to scroll the content
+ //
+
+ // Scrolling down means moving the cursor up and
+ // content down (i.e., towards the positive side
+ // of the Y axis).
+
+
+ this.scrollToStep = function(newStep){
+ //
+ // Compute new position for cursor
+ //
+ var cursorPos = newStep*((this.scrollBarHeight - 2*this.arrowWidth - this.cursorHeight) / this.steps);
+ this.cursor.setAttributeNS(null, "transform", "translate(0," + cursorPos + ")");
+
+ //
+ // Compute new content position
+ //
+ var contentPos = - newStep*(this.scrolledHeight / this.steps);
+ this.content.setAttributeNS(null, "transform", "translate(0," + contentPos + ")");
+
+ this.curStep = newStep;
+ }
+
+
+ // Scrolling up means moving the cursor down and
+ // the content up (i.e., towards the negative side
+ // of the Y axis).
+ this.handleScrollUp = function(evt) {
+ if (this.curStep < (this.steps - 1)){
+ this.scrollToStep(this.curStep + 1);
+ }
+ }
+
+ this.handleScrollDown = function(evt) {
+ if (this.curStep > 0){
+ this.scrollToStep(this.curStep - 1);
+ }
+ }
+
+ this.getHandleScrollDownFunction = function() {
+ var thisObject = this;
+ return function(evt) { thisObject.handleScrollDown(evt); }
+ }
+
+ this.getHandleScrollUpFunction = function() {
+ var thisObject = this;
+ return function(evt) { thisObject.handleScrollUp(evt); }
+ }
+
+ upArrow.addEventListener('click', this.getHandleScrollDownFunction(), false);
+ downArrow.addEventListener('click', this.getHandleScrollUpFunction(), false);
+
+}
+

Back to the top