daily pastebin goal
64%
SHARE
TWEET

Browser.java

a guest Feb 13th, 2018 169 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package hw3;
  2.  
  3. import java.awt.Desktop;
  4. import java.io.BufferedReader;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.URI;
  8. import java.net.URISyntaxException;
  9. import java.util.regex.Matcher;
  10. import java.util.regex.Pattern;
  11.  
  12.  
  13. public class Browser {
  14.         private static  final Pattern urlPat = Pattern.compile("new (?<url>[a-zA-Z0-9./~]+[a-zA-Z0-9/]+)");
  15.         private static  final Pattern deletePat = Pattern.compile("close (?<num>[0-9]+)");
  16.         private static  final Pattern dispPat = Pattern.compile("display (?<num>[0-9]+)");
  17.         private static  final Pattern movePat = Pattern.compile("move (?<from>[0-9]+) (?<to>[0-9]+)");
  18.         private static  final Pattern closePat = Pattern.compile("close (?<num>[0-9]+)");
  19.                 private static final Pattern replacePat = Pattern.compile("navigate (?<num>[0-9]+) (?<url>[a-zA-Z0-9./~]+[a-zA-Z0-9/]+)");
  20.  
  21.         public static void main(String[] args) throws IOException, URISyntaxException{
  22.             List tabs = new LinkedList();
  23.  
  24.             while (true){
  25.                     System.out.println("new <url> / close <num> / display <num> / move <from> <to> / navigate <num> <url> / count / exit");
  26.                     BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  27.                     String cmd = in.readLine();
  28.                     cmd = cmd.trim();
  29.  
  30.                     Matcher urlMat = urlPat.matcher(cmd);
  31.                     Matcher deleteMat = deletePat.matcher(cmd);
  32.                     Matcher dispMat = dispPat.matcher(cmd);
  33.                     Matcher swapMat = movePat.matcher(cmd);
  34.                     Matcher closeMat = closePat.matcher(cmd);
  35.                                         Matcher replaceMat = replacePat.matcher(cmd);
  36.                     if (urlMat.matches()) {
  37.                             tabs.add(new Tab(urlMat.group("url")));
  38.                     } else if (deleteMat.matches()) {
  39.                             tabs.remove(Integer.parseInt(deleteMat.group("num")));
  40.                     } else if (dispMat.matches()) {
  41.                             Desktop.getDesktop().browse(new URI(((Tab)tabs.get(Integer.parseInt(dispMat.group("num")))).url));
  42.                     } else if (swapMat.matches()) {
  43.                             int from = Integer.parseInt(swapMat.group("from"));
  44.                             int to = Integer.parseInt(swapMat.group("to"));
  45.                             tabs.move(from, to);
  46.                     } else if (replaceMat.matches()){
  47.                                                         tabs.replace(Integer.parseInt(replaceMat.group("num")), new Tab(replaceMat.group("url")));
  48.                                         } else if(cmd.equals("count")) {
  49.                                                 int tabcount = tabs.size();
  50.                                                 if (tabcount == 1) {
  51.                                                         System.out.println("You currently have 1 tab open.");
  52.                                                 } else {
  53.                                                         System.out.println("You currently have "+tabs.size()+" tabs open.");
  54.                                                 }
  55.                     } else if (cmd.equals("exit")){
  56.                                             break;
  57.                                         }else{
  58.                             System.out.println("UNRECOGNIZED COMMAND");
  59.                     }
  60.  
  61.                     Object[] tabsArr = tabs.toArray();
  62.                     int i = 0;
  63.                     for (Object o : tabsArr) {
  64.                             Tab t = (Tab) o;
  65.                             System.out.print("|"+i+" "+t.title+" |");
  66.                             System.out.print(" ");
  67.                             i++;
  68.                     }
  69.                     System.out.println();
  70.             }
  71.         }
  72.  
  73. }
RAW Paste Data
Top