All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nosi.core.gui.components.IGRPLink Maven / Gradle / Ivy

Go to download

IGRP Framework is a powerful and highly customizable platform developed by the Operational Nucleus for the Information Society (NOSi) to create web applications, it provides out of box, several modules to make easy to create stand-alone, production-grade web applications: authentication and access-control, business processes automation, reporting, page builder with automatic code generation and incorporation of the Once-Only-Principle, written in Java. IGRP Framework WAR - Contains some keys resources that give UI to IGRP Framework and others supports files.

There is a newer version: 2.0.0.240912-RCM
Show newest version
package nosi.core.gui.components;
/**
 * Emanuel
 * 28 Mar 2018
 */


import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

import nosi.core.webapp.QueryString;
import nosi.core.webapp.Report;
import nosi.core.webapp.helpers.Route;

public class IGRPLink {

	private String app;
	private String page;
	private String action;	
	private String link = "";
	private Report report;
	private String link_desc;
	
	private QueryString queryString;

	public IGRPLink() {
		this.queryString = new QueryString<>();
	}
	public IGRPLink(String app,String page,String action) {
		this();
		this.setAction(action);
		this.setApp(app);
		this.setPage(page);
		this.link = Route.getResolveUrl(this.getApp(), this.getPage(), this.getAction());
	}
	public IGRPLink(String link) {
		this();
		this.link = link;
	}
	public IGRPLink(Report report) {
		this();
		this.report = report;
	}
	public String getApp() {
		return app;
	}
	public void setApp(String app) {
		this.app = app;
	}
	public String getPage() {
		return page;
	}
	public void setPage(String page) {
		this.page = page;
	}
	public String getAction() {
		return action;
	}
	public void setAction(String action) {
		this.action = action;
	}	
	
	public IGRPLink addParam(String name,Object value) {
		this.queryString.addQueryString(name, value);
		return this;
	}

	public Report getReport() {
		return report;
	}
	
	public void setReport(Report report) {
		this.report = report;
	}
	
	public String getLink_desc() {
		return link_desc;
	}
	
	public void setLink_desc(String link_desc) {
		this.link_desc = link_desc;
	}
	
	public void setLink(String link) {
		this.link = link;
	}
	
	public String getLink() {
		if(this.report!=null) {
			this.link = this.report.getLink();
			this.report.getParams().entrySet().stream().forEach(p->{ 
				try {
					link += ("&name_array="+p.getKey() + "&value_array="+URLEncoder.encode(""+p.getValue(),StandardCharsets.UTF_8.toString()));
				} catch (UnsupportedEncodingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
			});
			return link;
		}
		if(this.queryString.getQueryString()!=null && !this.queryString.getQueryString().isEmpty()) {
			this.queryString.getQueryString().entrySet().stream().forEach(q->{
				q.getValue().stream().forEach(q1->{
					this.link += "&"+q.getKey()+"="+(q1!=null?q1.toString():"");
				});					
			});
		}
		return this.link.replace("&&", "&");
	}
	
	@Override
	public String toString() {
		return "IGRPLink [app=" + app + ", page=" + page + ", action=" + action + ", queryString=" + queryString + "]";
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy