Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Final NxnFormatter - It's a program created to format the content of topics
- * on VBulletin forums so that the text have a better look. It's an upgrade of
- * Uformatter.
- *
- * Copyright (C) 2014 Renan Gomes (rnxn) at <????@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- package sys.models.bbcode;
- import java.util.ArrayList;
- import sys.models.forum.ForumProperty;
- /**
- * <code>BBcode</code> contém métodos úteis para a formatação dos dados que, irá
- * gerar o output da aplicação. Nessa classe existem métodos úteis para a estilização
- * do texto e demais conteúdos do tópico.
- *
- * @author RENAN GOMES (rnxn)
- * @since 2014
- * @version 1.0
- @see BulletinBoardProperty classe pai/base */
- public class BBCode extends BulletinBoardProperty {
- public BBCode(){}
- /**Define uma fonte.
- * @param f nome da fonte.
- * @param c conteúdo.
- * @return [font=nome da fonte]conteúdo[/font] */
- public String setFont(String f, String c){
- if(!valid(c)) return null;
- String t = BulletinBoardCode.font.get();
- return putValuedStart(t, f) + c + putEnd(t);
- }
- /**Define uma cor.
- * @param cl hex da cor.
- * @param c conteúdo.
- * @return [color="hex da cor"]conteúdo[/color] */
- public String setColor(String cl, String c){
- if(!valid(c)) return null;
- String t = BulletinBoardCode.color.get();
- return putQuotedStart(t, cl) + c + putEnd(t);
- }
- /**Define o tamanho da fonte.
- * @param s tamanho.
- * @param c conteúdo.
- * @return [size=tamanho]conteúdo[/size] */
- public String setSize(String s, String c){
- if(!valid(c)) return null;
- String t = BulletinBoardCode.size.get();
- return putValuedStart(t, s) + c + putEnd(t);
- }
- // constantes de alinhamento horizontal do texto.
- public final char CENTER = 0;
- public final char LEFT = 1;
- public final char RIGHT = 2;
- /**Define a posição horizontal do texto.
- * @param al alinhamento (constantes da classe).
- * @param c conteúdo.
- * @return [alinhamento]conteúdo[/alinhamento] */
- public String setAlign(char al, String c){
- if(al != CENTER || al != LEFT || al != RIGHT) return null;
- String s = "";
- switch(al){ // get align code
- case CENTER: s = BulletinBoardCode.center.get(); break;
- case LEFT: s = BulletinBoardCode.left.get(); break;
- case RIGHT: s = BulletinBoardCode.right.get(); break;
- }
- return putStart(s) + c + putEnd(s);
- }
- /**Define uma lista. Nesse programa não é tratada listas ordenadas ou não,
- * todas as listas são criadas com um caractere ("▪") na frente dos ítens.
- * @param list lista.
- * @param c centralizada ou não.
- * @return ▪ item1 \n ▪ item2 \n ▪item3...*/
- public String setSimpleList(ArrayList<String>list, boolean c){
- if(!valid(list)) return null;
- String t = "";
- for(String s : list){
- // necessário pois cada navegador cria a lista de uma forma.
- // desta forma pelo menos ela ficará "padronizada" em todos.
- t += "▪ " + s;
- t += putLine();
- }
- return c ? setAlign(CENTER, t) : t;
- }
- /**Define uma lista numerada/ordenada.
- * @param list lista.
- * @param c centralizada ou não.
- * @return [list=1][*]item1 \n [*]item2 \n [*]item3...*/
- public String setNumberedList(ArrayList<String>list, boolean c){
- if(!valid(list)) return null;
- String t = ""; // content
- String ll = BulletinBoardCode.list.get(); // bbcode list
- String li = BulletinBoardCode.list_item.get(); // bbcode list item
- t += putValuedStart(ll, "1");
- for(String s : list){
- t += putStart(li) + s;
- t += putLine();
- }
- t+= putEnd(ll);
- return c ? setAlign(CENTER, t) : t;
- }
- /**Define uma URL/Link.
- * @param u url.
- * @param w frase de exibição.
- * @return [url="url"]frase de exibição[/url] */
- public String setLink(String u, String w){
- String t = BulletinBoardCode.link.get();
- return putQuotedStart(t, u) + w + putEnd(t);
- }
- /**Define uma imagem.
- * @param u url.
- * @return [img]url[/img] */
- public String setImage(String u){
- String t = BulletinBoardCode.image.get();
- return putStart(t) + u + putEnd(t);
- }
- /**Define um vídeo
- * @param u url.
- * @return [video]url[/video] */
- public String setVideo(String u){
- String t = BulletinBoardCode.video.get();
- return putStart(t) + u + putEnd(t);
- }
- /**Define uma forma de contactar pelo skype. (Enviando convite)
- * @param u userID skype.
- * @param i icone.
- * @param w frase de substituição.
- * @return [url="skype:userID?add"][img]icone[/img]frase de substituição[/url] */
- public String setSkype(String u, String i, String w){
- String t = BulletinBoardCode.link.get();
- return putQuotedStart(t, ForumProperty.skype_before + u + ForumProperty.skype_after) + setImage(i) + w + putEnd(t);
- }
- /**Define um link para envio de mensagem privativa a outro usuário.
- * @param path path do fórum.
- * @param userID id de usuário no fórum.
- * @param i ícone.
- * @param w frase de substituição.
- * @return [url="path do forum/private.php?do=newpm&u=id de usuário"][img]icone[/img]palavra de substituição[/url] */
- public String setPrivateMessage(String path, String userID, String i, String w){
- String t = BulletinBoardCode.link.get();
- return putQuotedStart(t, ForumProperty.pm.get() + userID) + setImage(i) + w + putEnd(t);
- }
- /**Define um spoiler.
- * @param c conteúdo.
- * @return [spoiler]conteúdo[/spoiler] */
- public String setSpoiler(String c){
- String t = BulletinBoardCode.spoiler.get();
- return putStart(t) + putLine() + c + putLine() + putEnd(t);
- }
- /* Valida uma lista/string (pvt).
- * @param s objeto a ser verificado.
- * @return true - ok. */
- private boolean valid(Object s){
- if(s != null){
- if(s instanceof String){
- String t = (String) s;
- return !t.isEmpty();
- } else if(s instanceof ArrayList){
- ArrayList t = (ArrayList) s;
- return !t.isEmpty();
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement