Advertisement
xlrnxnlx

djaldjklajd

Sep 29th, 2014
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.76 KB | None | 0 0
  1. package br.com.webcheats.format;
  2.  
  3. import br.com.webcheats.enums.ECode;
  4. import br.com.webcheats.enums.EForum;
  5. import br.com.webcheats.enums.EIcons;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8.  
  9. public class Format {
  10.  
  11.     // os navegadores exibem as listas de forma diferente.
  12.     // essa variável é para tratar para que ambos exibam a lista do mesmo modo.
  13.     private final String ITEM = "▪";
  14.    
  15.     private final Sintax sintax;
  16.    
  17.     public Format() {
  18.         this.sintax = new Sintax();
  19.     }
  20.    
  21.     public String bold(String content){
  22.         String code = ECode.bold.code();
  23.         return sintax.init(code) + content + sintax.end(code);
  24.     }
  25.    
  26.     public String italic(String content){
  27.         String code = ECode.italic.code();
  28.         return sintax.init(code) + content + sintax.end(code);
  29.     }
  30.    
  31.     public String underline(String content){
  32.         String code = ECode.underline.code();
  33.         return sintax.init(code) + content + sintax.end(code);
  34.     }
  35.    
  36.     public String center(String content){
  37.         String code = ECode.center.code();
  38.         return sintax.init(code) + content + sintax.end(code);
  39.     }
  40.    
  41.     public String left(String content){
  42.         String code = ECode.left.code();
  43.         return sintax.init(code) + content + sintax.end(code);
  44.     }
  45.    
  46.     public String right(String content){
  47.         String code = ECode.right.code();
  48.         return sintax.init(code) + content + sintax.end(code);
  49.     }
  50.    
  51.     public String color(String color, String content){
  52.         String code = ECode.color.code();
  53.         return sintax.initQuote(code, color) + content + sintax.end(code);
  54.     }
  55.    
  56.     public String size(String size, String content){
  57.         String code = ECode.size.code();
  58.         return sintax.initValue(code, size) + content + sintax.end(code);
  59.     }
  60.    
  61.     public String font(String font, String content){
  62.         String code = ECode.font.code();
  63.         return sintax.initValue(code, font) + content + sintax.end(code);
  64.     }
  65.    
  66.     public String spoiler(String content){
  67.         String code = ECode.spoiler.code();
  68.         return sintax.init(code) + content + sintax.end(code);
  69.     }
  70.    
  71.     public String quote(String content){
  72.         String code = ECode.quote.code();
  73.         return sintax.init(code) + content + sintax.end(code);
  74.     }
  75. d    
  76.     public String image(String url){
  77.         String code = ECode.image.code();
  78.         return sintax.init(code) + url + sintax.end(code);
  79.     }
  80.    
  81.     public String video(String url){
  82.         String code = ECode.video.code();
  83.         return sintax.init(code) + url + sintax.end(code);
  84.     }
  85.    
  86.     public String link(String url, String text){
  87.         String code = ECode.link.code();
  88.         return sintax.initQuote(code, url) + text + sintax.end(code);
  89.     }
  90.    
  91.     public String list(ArrayList<String>list, boolean center){
  92.         String content = "";
  93.         content = list.stream().map((s) -> ITEM + " " + s).reduce(content, String::concat);
  94.         return center ? center(content) : content;
  95.     }
  96.    
  97.     public final int ALIGN_LEFT = 0;
  98.     public final int ALIGN_CENTER = 1;
  99.     public final int ALIGN_RIGHT = 2;
  100.    
  101.     public String list(ArrayList<String>list, int alignType){
  102.         String content = list(list, false);
  103.         switch(alignType){
  104.             case ALIGN_CENTER: return center(content);
  105.             case ALIGN_LEFT: return left(content);
  106.             case ALIGN_RIGHT: return right(content);
  107.             default: return null;
  108.         }
  109.     }
  110.    
  111.     public String listEnum(ArrayList<String>list){
  112.         String code = ECode.list.code();
  113.         String item = ECode.item.code();
  114.         String content = sintax.init(code + "=1");
  115.         content = list.stream().map((s) -> "["+item+"] " + s).reduce(content, String::concat);
  116.         return content += sintax.end(code);    
  117.     }
  118.    
  119.     public final int MEDIA_IMAGE = 0;
  120.     public final int MEDIA_VIDEO = 1;
  121.    
  122.     public String listMedia(ArrayList<String>urls, int mediaType, boolean center){
  123.         String list = "";
  124.         for(String url:urls)
  125.             list = (mediaType == MEDIA_IMAGE ? image(url) : video(url)) + jump();
  126.         return center ? center(list) : list;
  127.     }
  128.    
  129.     public String listURL(ArrayList<String>urls, String replace){
  130.         String content = "";
  131.         for(String url : urls)
  132.             content = link(url, replace) + jump();
  133.         return content;
  134.     }
  135.    
  136.     public String listURL(ArrayList<String>urls, ArrayList<String>replaces){
  137.         if(urls.size() == replaces.size() && urls.size() > 0){
  138.             int size = urls.size();
  139.             String content = "";
  140.             for(int i = 0; i < size; i++)
  141.                 content += link(urls.get(i), replaces.get(i)) + jump();
  142.             return content;
  143.         }
  144.         return null;
  145.     }
  146.    
  147.     public String logo(String url){
  148.         return image(url.isEmpty() ? EForum.logo.image() : url);
  149.     }
  150.    
  151.     public String separator(String url){
  152.         return center(image(url.isEmpty() ? EForum.separator.image() : url));
  153.     }
  154.    
  155.     public String text(String font, String size, String content){
  156.         return font(font, size(size, content));
  157.     }
  158.    
  159.     public String text(String font, String size, String color, String content){
  160.         return font(font, size(size, color(color, content)));
  161.     }
  162.    
  163.     public String text(String icon, String font, String size, String color, String content){
  164.         String tempicon = image(icon);
  165.         return font(font, size(size, color(color, tempicon + " " + content)));
  166.     }  
  167.    
  168.     // manter em private, deixar o usuário usar os atributos de inteiro.
  169.     private final String TABLE_OUTER = "class:outer_border,width:800";
  170.     private final String TABLE_FULL = "class:grid, width:800";
  171.    
  172.     public final int TABLE_BORDER_OUTER = 0;
  173.     public final int TABLE_BORDER_FULL = 1;
  174.    
  175.     // contrói a linha da tabela -- MANTER PRIVADO --
  176.     public String line(ArrayList<String>lines){
  177.         String code = ECode.line.code();
  178.         String content = "";
  179.         content = lines.stream().map((line) -> sintax.init(code) + line + sintax.end(code)).reduce(content, String::concat);
  180.         return content;
  181.     }
  182.    
  183.     // constrói a coluna da tabela -- MANTER PRIVADO --
  184.     private String column(ArrayList<String>lines){
  185.         String code = ECode.column.code();
  186.         return sintax.init(code) + line(lines) + sintax.end(code);
  187.     }
  188.    
  189.     // contrói a coluna da tabela -- MANTER PRIVADO --
  190.     private String tableContent(ArrayList<String>columns, ArrayList<String>lines){
  191.         String code = ECode.column.code();
  192.         String content = "";
  193.         content = columns.stream().map((_item) -> sintax.init(code) + line(lines) + sintax.end(code)).reduce(content, String::concat);
  194.         return content;
  195.     }
  196.  
  197.     public String table(ArrayList<String>columns, ArrayList<String>rows){
  198.         String code = ECode.table.code();
  199.         String content = sintax.init(code);
  200.         content += tableContent(columns, rows);
  201.         return content += sintax.end(code);
  202.     }
  203.    
  204.     public String table(ArrayList<String>columns, ArrayList<String>lines, int alignType){
  205.         String content = table(columns, lines);
  206.         switch(alignType){
  207.             case ALIGN_CENTER: return center(content);
  208.             case ALIGN_LEFT: return left(content);
  209.             case ALIGN_RIGHT: return right(content);
  210.         }
  211.         return null;
  212.     }
  213.    
  214.     public String table(ArrayList<String>columns, ArrayList<String>lines, int border, boolean center){
  215.         String code = ECode.table.code();
  216.         String content = sintax.initQuote(code, border == TABLE_BORDER_FULL ? TABLE_FULL : TABLE_OUTER);
  217.         content += tableContent(columns, lines);
  218.         content += sintax.end(code);
  219.         return center ? center(content) : content;
  220.     }
  221.    
  222.     public String table(ArrayList<String>columns, ArrayList<String>lines, int border, int alignType){
  223.         String content = table(columns, lines, border, false);
  224.         switch(alignType){
  225.             case ALIGN_CENTER: return center(content);
  226.             case ALIGN_LEFT: return left(content);
  227.             case ALIGN_RIGHT: return right(content);
  228.         }
  229.         return null;
  230.     }
  231.    
  232.     // valores vindos da view.
  233.     private final String TABLE_YES = "y";
  234.     private final String TABLE_NO = "n";
  235.    
  236.     private ArrayList<String> arrayToArrayList(String array[]){
  237.         ArrayList<String>temp = new ArrayList<>();
  238.         temp.addAll(Arrays.asList(array));
  239.         return temp;
  240.     }
  241.    
  242.     // troca o valor da string pelo ícone correspondente
  243.     // usado somente na tabela -- MANTER PRIVADO --
  244.     private String setTableIcon(String identifier){
  245.         String icon;
  246.         switch(identifier.toLowerCase()){
  247.             case TABLE_NO: icon = EIcons.no.icon(); break;
  248.             case TABLE_YES: icon = EIcons.yes.icon(); break;
  249.             default: icon = EIcons.none.icon(); break;
  250.         }
  251.         return image(icon);
  252.     }
  253.    
  254.     // much better and faster than uformatter version :D
  255.     public String tableCompatibility(ArrayList<String>system32, ArrayList<String>system64){
  256.        
  257.         if(system32.size() != system64.size()) return null;
  258.        
  259.         CompatibilityTableConstants comp = new CompatibilityTableConstants();
  260.         String header = column(arrayToArrayList(comp.getHeader()));
  261.         ArrayList<String>systemName = arrayToArrayList(comp.getSystem());
  262.         ArrayList<String>tempArray;
  263.         String body = "";
  264.         for(int i = 0; i < systemName.size(); i++){
  265.             tempArray = new ArrayList<>();
  266.             tempArray.add(systemName.get(i));
  267.             tempArray.add(setTableIcon(system32.get(i)));
  268.             tempArray.add(setTableIcon(system64.get(i)));
  269.             body += column(tempArray);
  270.         }
  271.        
  272.         String code = ECode.table.code();
  273.         return sintax.initQuote(code, TABLE_OUTER) + (header + body) + sintax.end(code);  
  274.     }
  275.    
  276.     public String tableCompability(ArrayList<String>system32, ArrayList<String>system64, int alignType){
  277.         String content = tableCompatibility(system32, system64);
  278.         switch(alignType){
  279.             case ALIGN_CENTER: return center(content);
  280.             case ALIGN_LEFT: return left(content);
  281.             case ALIGN_RIGHT: return right(content);
  282.             default: return null;
  283.         }
  284.     }
  285.    
  286.     // para pular uma linha.
  287.     public String jump(){
  288.         return System.lineSeparator();
  289.     }
  290.    
  291.     // para pular 'n' linhas.
  292.     public String jump(int times){
  293.         if(times <= 1) return jump();
  294.        
  295.         String content = "";
  296.         for(int i = 0; i < times; i++)
  297.             content += System.lineSeparator();
  298.         return content;
  299.     }
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement