public Object parse(String source) {
          GTKScanner scanner = new GTKScanner();
          scanner.scanReader(new StringReader(source), source);

          try {
            Color[] ret = new Color[1];
            int token = GTKParser.parseColor(scanner, ret, 0);
            if (token == GTKScanner.TOKEN_NONE) {
              return ret[0];
            }
          } catch (IOException ioe) {
          } finally {
            scanner.clearScanner();
          }

          return null;
        }
        public Object parse(String source) {
          GTKScanner scanner = new GTKScanner();
          scanner.scanReader(new StringReader(source), source);

          try {
            int left;
            int right;
            int top;
            int bottom;

            if (scanner.getToken() != GTKScanner.TOKEN_LEFT_CURLY) {
              return null;
            }

            if (scanner.getToken() != GTKScanner.TOKEN_INT) {
              return null;
            }

            left = (int) scanner.currValue.longVal;

            if (scanner.getToken() != GTKScanner.TOKEN_COMMA) {
              return null;
            }

            if (scanner.getToken() != GTKScanner.TOKEN_INT) {
              return null;
            }

            right = (int) scanner.currValue.longVal;

            if (scanner.getToken() != GTKScanner.TOKEN_COMMA) {
              return null;
            }

            if (scanner.getToken() != GTKScanner.TOKEN_INT) {
              return null;
            }

            top = (int) scanner.currValue.longVal;

            if (scanner.getToken() != GTKScanner.TOKEN_COMMA) {
              return null;
            }

            if (scanner.getToken() != GTKScanner.TOKEN_INT) {
              return null;
            }

            bottom = (int) scanner.currValue.longVal;

            if (scanner.getToken() != GTKScanner.TOKEN_RIGHT_CURLY) {
              return null;
            }

            return new Insets(top, left, bottom, right);
          } catch (IOException ioe) {
          } finally {
            scanner.clearScanner();
          }

          return null;
        }