daily pastebin goal
64%
SHARE
TWEET

Untitled

a guest Jan 15th, 2019 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package mca_test;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.util.Scanner;
  5. import java.util.ArrayList;
  6. import java.util.Comparator;
  7. import java.util.List;
  8. import java.util.Collections;
  9.  
  10.  
  11. public class Main {
  12.         static class Nav {
  13.          Integer id;
  14.          String MenuName;
  15.          String ParentID;
  16.          boolean isHidden;
  17.          String LinkURL;
  18.          List<Nav> Children = new ArrayList<>();
  19.        
  20.          public Nav(Integer id, String MenuName, String ParentID, boolean isHidden, String LinkURL) {
  21.              this.id = id;
  22.              this.MenuName = MenuName;
  23.              this.ParentID = ParentID;
  24.              this.isHidden = isHidden;
  25.              this.LinkURL = LinkURL;
  26.          }
  27.  
  28.          public void AddChild(Nav child)
  29.          {
  30.              this.Children.add(child);    
  31.              Collections.sort(Children,new Comparator<Nav>() {
  32.                  @Override
  33.                 public int compare(Nav el1, Nav el2) {
  34.                         return el1.MenuName.compareToIgnoreCase(el2.MenuName);
  35.                 }
  36.  
  37.             });
  38.          }
  39.           public void printNav(Integer lvl) {
  40.               String line = LinkURL;
  41.               int indentCount =  line.length() - line.replace("/", "").length();
  42.               String repeated = new String(new char[indentCount-1]).replace("\0", "...");
  43.              System.out.println("." + repeated + MenuName);
  44.              for (Nav child: Children) {
  45.                  if (!child.isHidden)
  46.                  child.printNav(lvl+1);
  47.                 }
  48.          }
  49.      }
  50.       public static void addChildren(Nav node, ArrayList<Nav> rows) {
  51.             for (Nav row : rows) {
  52.                 if (row.ParentID.equals(Integer.toString(node.id))) {
  53.                     node.AddChild(row);
  54.                     addChildren(row, rows);
  55.                 }
  56.             }
  57.         }
  58.  
  59.     public static void main(String[] args) throws FileNotFoundException {
  60.         int i = 0;
  61.         ArrayList<Nav> rows = new ArrayList<Nav>();
  62.         ArrayList<Nav> tree = new ArrayList<Nav>();
  63.         Scanner scanner = new Scanner(new File("Navigation.csv"));
  64.         scanner.nextLine();
  65.         scanner.useDelimiter(";");
  66.        
  67.         while(scanner.hasNext()){
  68.            
  69.             String data = scanner.nextLine();
  70.             String[] values = data.split(";");
  71.             Nav temp = new Nav(Integer.parseInt(values[0]), values[1], values[2], Boolean.parseBoolean(values[3]), values[4]);
  72.             rows.add(temp);
  73.            
  74.            i++;
  75.         }
  76.         scanner.close();
  77.         for (i=0;i<rows.size();i++) {
  78.             if (rows.get(i).ParentID.equalsIgnoreCase("null")) {
  79.                 tree.add(rows.get(i));
  80.             }
  81.         } //list has two root items
  82.        
  83.         for (Nav root : tree) {
  84.             addChildren(root, rows);
  85.         }
  86.        
  87.         for (Nav el : tree) {
  88.             el.printNav(0);
  89.            
  90.            
  91.         }
  92.     }
  93.  
  94. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top