Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Program/carbon/org/eclipse/swt/program/Program.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Program/carbon/org/eclipse/swt/program/Program.java333
1 files changed, 0 insertions, 333 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Program/carbon/org/eclipse/swt/program/Program.java b/bundles/org.eclipse.swt/Eclipse SWT Program/carbon/org/eclipse/swt/program/Program.java
deleted file mode 100644
index 76f02bfb0e..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Program/carbon/org/eclipse/swt/program/Program.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.program;
-
-
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-import java.io.IOException;
-import java.util.Vector;
-
-/**
- * Instances of this class represent programs and
- * their associated file extensions in the operating
- * system.
- */
-public final class Program {
- String name;
- String command;
- String iconName;
-
-/**
- * Prevents uninitialized instances from being created outside the package.
- */
-Program () {
-}
-
-/**
- * Finds the program that is associated with an extension.
- * The extension may or may not begin with a '.'. Note that
- * a <code>Display</code> must already exist to guarantee that
- * this method returns an appropriate result.
- *
- * @param extension the program extension
- * @return the program or <code>null</code>
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT when extension is null</li>
- * </ul>
- */
-public static Program findProgram (String extension) {
- if (extension == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- if (extension.length () == 0) return null;
- if (extension.charAt (0) != '.') extension = '.' + extension;
- return getProgram(extension);
-}
-
-/**
- * Answer all program extensions in the operating system. Note
- * that a <code>Display</code> must already exist to guarantee
- * that this method returns an appropriate result.
- *
- * @return an array of extensions
- */
-public static String [] getExtensions () {
- return new String [] {
- ".xml",
- ".html",
- ".java",
- ".properties",
- ".jar",
- ".zip",
- ".txt",
- ".jpeg",
- ".jpg",
- ".tiff",
- ".gif",
- ".png",
- };
-}
-
-static Program getProgram (String key) {
- String[] extentions = getExtensions();
- int i = 0;
- while (i < extentions.length) {
- String ext = extentions[i];
- if (ext.equals(key)) break;
- i++;
- }
- if (i == extentions.length) return null;
-
- /* Name */
- String name = key;
- if (name == null || name.length () == 0) return null;
-
- /* Command */
- String command = "/usr/bin/open %f";
-
- /* Icon */
- String iconName = "icon";
-
- Program program = new Program ();
- program.name = name;
- program.command = command;
- program.iconName = iconName;
- return program;
-}
-
-/**
- * Answers all available programs in the operating system. Note
- * that a <code>Display</code> must already exist to guarantee
- * that this method returns an appropriate result.
- *
- * @return an array of programs
- */
-public static Program [] getPrograms () {
- return new Program [] {
- getProgram(".html"),
- };
-}
-
-/**
- * Launches the executable associated with the file in
- * the operating system. If the file is an executable,
- * then the executable is launched. Note that a <code>Display</code>
- * must already exist to guarantee that this method returns
- * an appropriate result.
- *
- * @param fileName the file or program name
- * @return <code>true</code> if the file is launched, otherwise <code>false</code>
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT when fileName is null</li>
- * </ul>
- */
-public static boolean launch (String fileName) {
- if (fileName == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- String[] args= new String[] {"/usr/bin/open", fileName};
- try {
- Compatibility.exec(args);
- return true;
- } catch(IOException ex) {}
- return false;
-}
-
-static String[] parseCommand(String cmd) {
- Vector args = new Vector();
- int sIndex = 0;
- int eIndex;
- while (sIndex < cmd.length()) {
- /* Trim initial white space of argument. */
- while (sIndex < cmd.length() && Compatibility.isWhitespace(cmd.charAt(sIndex))) {
- sIndex++;
- }
- if (sIndex < cmd.length()) {
- /* If the command is a quoted string */
- if (cmd.charAt(sIndex) == '"' || cmd.charAt(sIndex) == '\'') {
- /* Find the terminating quote (or end of line).
- * This code currently does not handle escaped characters (e.g., " a\"b").
- */
- eIndex = sIndex + 1;
- while (eIndex < cmd.length() && cmd.charAt(eIndex) != cmd.charAt(sIndex)) eIndex++;
- if (eIndex >= cmd.length()) {
- /* The terminating quote was not found
- * Add the argument as is with only one initial quote.
- */
- args.addElement(cmd.substring(sIndex, eIndex));
- }
- else {
- /* Add the argument, trimming off the quotes. */
- args.addElement(cmd.substring(sIndex+1, eIndex));
- }
- sIndex = eIndex + 1;
- }
- else {
- /* Use white space for the delimiters. */
- eIndex = sIndex;
- while (eIndex < cmd.length() && !Compatibility.isWhitespace(cmd.charAt(eIndex))) eIndex++;
- args.addElement(cmd.substring(sIndex, eIndex));
- sIndex = eIndex + 1;
- }
- }
- }
- String[] result = new String[args.size()];
- args.copyInto(result);
- return result;
-}
-
-/**
- * Executes the program with the file as the single argument
- * in the operating system. It is the responsibility of the
- * programmer to ensure that the file contains valid data for
- * this program.
- *
- * @param fileName the file or program name
- * @return <code>true</code> if the file is launched, otherwise <code>false</code>
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT when fileName is null</li>
- * </ul>
- */
-public boolean execute (String fileName) {
- if (fileName == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-
- /* Parse the command into its individual arguments. */
- String[] args = parseCommand(command);
- int fileArg = -1;
- int index;
- for (index = 0; index < args.length; index++) {
- int j = args[index].indexOf("%f");
- if (j != -1) {
- String value = args[index];
- fileArg = index;
- args[index] = value.substring(0, j) + fileName + value.substring(j + 2);
- }
- }
-
- /* If a file name was given but the command did not have "%f" */
- if ((fileName.length() > 0) && (fileArg < 0)) {
- String[] newArgs = new String[args.length + 1];
- for (index = 0; index < args.length; index++) newArgs[index] = args[index];
- newArgs[args.length] = fileName;
- args = newArgs;
- }
-
- /* Execute the command. */
- try {
- Compatibility.exec(args);
- } catch (IOException e) {
- return false;
- }
- return true;
-}
-
-/**
- * Returns the receiver's image data. This is the icon
- * that is associated with the receiver in the operating
- * system.
- *
- * @return the image data for the program, may be null
- */
-public ImageData getImageData () {
- RGB[] rgbs = new RGB[] {
- new RGB(0xff, 0xff, 0xff),
- new RGB(0x5f, 0x5f, 0x5f),
- new RGB(0x80, 0x80, 0x80),
- new RGB(0xC0, 0xC0, 0xC0),
- new RGB(0xDF, 0xDF, 0xBF),
- new RGB(0xFF, 0xDF, 0x9F),
- new RGB(0x00, 0x00, 0x00),
- };
- ImageData data = new ImageData(16, 16, 4, new PaletteData(rgbs) );
- data.transparentPixel = 6; // use black for transparency
- String[] p= {
- "CCCCCCCCGGG",
- "CFAAAAACBGG",
- "CAAAAAACFBG",
- "CAAAAAACBBB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CAAAAAAAAEB",
- "CDDDDDDDDDB",
- "CBBBBBBBBBB",
- };
- for (int y= 0; y < p.length; y++) {
- for (int x= 0; x < 11; x++) {
- data.setPixel(x+3, y+1, p[y].charAt(x)-'A');
- }
- }
- return data;
-}
-
-/**
- * Returns the receiver's name. This is as short and
- * descriptive a name as possible for the program. If
- * the program has no descriptive name, this string may
- * be the executable name, path or empty.
- *
- * @return the name of the program
- */
-public String getName () {
- return name;
-}
-
-/**
- * Compares the argument to the receiver, and returns true
- * if they represent the <em>same</em> object using a class
- * specific comparison.
- *
- * @param other the object to compare with this object
- * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
- *
- * @see #hashCode()
- */
-public boolean equals(Object other) {
- if (this == other) return true;
- if (other instanceof Program) {
- final Program program = (Program) other;
- return name.equals(program.name) && command.equals(program.command)
- && iconName.equals(program.iconName);
- }
- return false;
-}
-
-/**
- * Returns an integer hash code for the receiver. Any two
- * objects that return <code>true</code> when passed to
- * <code>equals</code> must return the same value for this
- * method.
- *
- * @return the receiver's hash
- *
- * @see #equals(Object)
- */
-public int hashCode() {
- return name.hashCode() ^ command.hashCode() ^ iconName.hashCode();
-}
-
-/**
- * Returns a string containing a concise, human-readable
- * description of the receiver.
- *
- * @return a string representation of the program
- */
-public String toString () {
- return "Program {" + name + "}";
-}
-
-}

Back to the top