aboutsummaryrefslogtreecommitdiffstats
path: root/demos/sortable/delay-start.html
blob: 35d1d52f5d1f8e095a3e4d881dbc8cad89e6d91f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>jQuery UI Sortable - Delay start</title>
	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
	<script src="../../jquery-1.4.4.js"></script>
	<script src="../../ui/jquery.ui.core.js"></script>
	<script src="../../ui/jquery.ui.widget.js"></script>
	<script src="../../ui/jquery.ui.mouse.js"></script>
	<script src="../../ui/jquery.ui.sortable.js"></script>
	<link rel="stylesheet" href="../demos.css">
	<style>
	#sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; margin-bottom: 15px;zoom: 1; }
	#sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 95%; }
	</style>
	<script>
	$(function() {
		$( "#sortable1" ).sortable({
			delay: 300
		});
		
		$( "#sortable2" ).sortable({
			distance: 15
		});

		$( "li" ).disableSelection();
	});
	</script>
</head>
<body>
<div class="demo">

<h3 class="docs">Time delay of 300ms:</h3>

<ul id="sortable1">
	<li class="ui-state-default">Item 1</li>
	<li class="ui-state-default">Item 2</li>
	<li class="ui-state-default">Item 3</li>
	<li class="ui-state-default">Item 4</li>
</ul>

<h3 class="docs">Distance delay of 15px:</h3>

<ul id="sortable2">
	<li class="ui-state-default">Item 1</li>
	<li class="ui-state-default">Item 2</li>
	<li class="ui-state-default">Item 3</li>
	<li class="ui-state-default">Item 4</li>
</ul>

</div><!-- End demo -->



<div class="demo-description">
<p>
	Prevent accidental sorting either by delay (time) or distance. Set a number of
	milliseconds the element needs to be dragged before sorting starts
	with the <code>delay</code> option. Set a distance in pixels the element
	needs to be dragged before sorting starts with the <code>distance</code>
	option.
</p>
</div><!-- End demo-description -->

</body>
</html>
are consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation and was originally created by * James Tauber <jtauber@jtauber.com>. For more information on the Apache * Software Foundation, please see <http://www.apache.org/>. */ package org.apache.fop.util; import java.io.FilterOutputStream; import java.io.OutputStream; import java.io.IOException; /** * This class applies a RunLengthEncode filter to the stream. * * @author <a href="mailto:smwolke@geistig.com">Stephen Wolke</a> * @version $Id$ */ public class RunLengthEncodeOutputStream extends FilterOutputStream implements Finalizable { private static final int MAX_SEQUENCE_COUNT = 127; private static final int END_OF_DATA = 128; private static final int BYTE_MAX = 256; private static final int NOT_IDENTIFY_SEQUENCE = 0; private static final int START_SEQUENCE = 1; private static final int IN_SEQUENCE = 2; private static final int NOT_IN_SEQUENCE = 3; private int runCount = 0; private int isSequence = NOT_IDENTIFY_SEQUENCE; private byte[] runBuffer = new byte[MAX_SEQUENCE_COUNT + 1]; /** @see java.io.FilterOutputStream **/ public RunLengthEncodeOutputStream(OutputStream out) { super(out); } /** @see java.io.FilterOutputStream **/ public void write(byte b) throws java.io.IOException { runBuffer[runCount] = b; switch (runCount) { case 0: runCount = 0; isSequence = NOT_IDENTIFY_SEQUENCE; runCount++; break; case 1: if (runBuffer[runCount] != runBuffer[runCount - 1]) { isSequence = NOT_IN_SEQUENCE; } runCount++; break; case 2: if (runBuffer[runCount] != runBuffer[runCount - 1]) { isSequence = NOT_IN_SEQUENCE; } else { if (isSequence == NOT_IN_SEQUENCE) { isSequence = START_SEQUENCE; } else { isSequence = IN_SEQUENCE; } } runCount++; break; case MAX_SEQUENCE_COUNT: if (isSequence == IN_SEQUENCE) { out.write(BYTE_MAX - (MAX_SEQUENCE_COUNT - 1)); out.write(runBuffer[runCount - 1]); runBuffer[0] = runBuffer[runCount]; runCount = 1; } else { out.write(MAX_SEQUENCE_COUNT); out.write(runBuffer, 0, runCount + 1); runCount = 0; } isSequence = NOT_IDENTIFY_SEQUENCE; break; default: switch (isSequence) { case IN_SEQUENCE: if (runBuffer[runCount] != runBuffer[runCount - 1]) { out.write(BYTE_MAX - (runCount - 1)); out.write(runBuffer[runCount - 1]); runBuffer[0] = runBuffer[runCount]; runCount = 1; isSequence = NOT_IDENTIFY_SEQUENCE; break; } runCount++; break; case NOT_IN_SEQUENCE: if (runBuffer[runCount] == runBuffer[runCount - 1]) { isSequence = START_SEQUENCE; } runCount++; break; case START_SEQUENCE: if (runBuffer[runCount] == runBuffer[runCount - 1]) { out.write(runCount - 3); out.write(runBuffer, 0, runCount - 2); runBuffer[0] = runBuffer[runCount]; runBuffer[1] = runBuffer[runCount]; runBuffer[2] = runBuffer[runCount]; runCount = 3; isSequence = IN_SEQUENCE; break; } else { isSequence = NOT_IN_SEQUENCE; runCount++; break; } } } } /** @see java.io.FilterOutputStream **/ public void write(byte[] b) throws IOException { for (int i = 0; i < b.length; i++) { this.write(b[i]); } } /** @see java.io.FilterOutputStream **/ public void write(byte[] b, int off, int len) throws IOException { for (int i = 0; i < len; i++) { this.write(b[off + i]); } } /** @see Finalizable **/ public void finalizeStream() throws IOException { switch (isSequence) { case IN_SEQUENCE: out.write(BYTE_MAX - (runCount - 1)); out.write(runBuffer[runCount - 1]); break; default: out.write(runCount - 1); out.write(runBuffer, 0, runCount); } out.write(END_OF_DATA); flush(); if (out instanceof Finalizable) { ((Finalizable) out).finalizeStream(); } } /** @see java.io.FilterOutputStream **/ public void close() throws IOException { finalizeStream(); super.close(); } }