Font Awesome

25-09-2013 15-56-45Med Font Awesome får du mere end 300 ikoner du kan bruges i dine XPages.

Du kan enten gøre som Russel Maher og kopiere de forskellige fonte og stylesheets ind i din Notes database – eller du kan blot loaded det hele fra skyen:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.resources>
		<xp:linkResource rel="stylesheet">
			<xp:this.href><![CDATA[#{javascript:"//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css"}]]></xp:this.href>
		</xp:linkResource>
	</xp:this.resources>

	<a class="btn" href="#">
		<i class="icon-repeat"></i>&#160;Reload
	</a>

	<a class="btn btn-success" href="#">
		<i class="icon-shopping-cart icon-large"></i>&#160;Reload
	</a>

</xp:view>

Java: Ofte brugte ‘XSP’ funktioner

1379532132_source_javaI Java Beans har jeg ofte brug for adgang til URL’en, currentDocument eller de forskellige scope variable (session, request, applicatiion og view). Til dette bruger jeg nednestående lille klasse. Bemærk at DominoUtils klassen også indeholder en del nyttige funktioner.

package dk.xpages;

import java.util.Map;
import javax.faces.context.FacesContext;
import lotus.domino.Database;
import lotus.domino.Session;
import com.ibm.domino.xsp.module.nsf.NotesContext;
import com.ibm.xsp.designer.context.XSPContext;
import com.ibm.xsp.designer.context.XSPUrl;
import com.ibm.xsp.model.domino.wrapped.DominoDocument;

public class XSPUtils {

	public static XSPUrl getUrl() {
		return XSPContext.getXSPContext(FacesContext.getCurrentInstance()).getUrl();
	}

	public static String getUrlParameter( String key) {
		return getUrl().getParameter(key);
	}

	public static Object getVariableValue(String varName) {
		FacesContext context = FacesContext.getCurrentInstance();
		return context.getApplication().getVariableResolver().resolveVariable(context, varName);
	}

	public static Session getSessionAsSigner() {
		NotesContext nc = NotesContext.getCurrentUnchecked();
		return (null != nc) ? nc.getSessionAsSignerFullAdmin() : null;
	}

	public static Session getCurrentSession() {
		return (Session) getVariableValue("session");
	}

	public static Database getCurrentDatabase() {
		return (Database) getVariableValue("database");
	}

	public static DominoDocument getCurrentDocument() {
		return (DominoDocument) getVariableValue("currentDocument");
	}

	@SuppressWarnings("unchecked")
	public static Map<String, Object> getSessionScope() {
		return (Map<String, Object>) getVariableValue("sessionScope");
	}

	@SuppressWarnings("unchecked")
	public static Map<String, Object> getApplicationScope() {
		return (Map<String, Object>) getVariableValue("applicationScope");
	}

	@SuppressWarnings("unchecked")
	public static Map<String, Object> getViewScope() {
		return (Map<String, Object>) getVariableValue("viewScope");
	}

	@SuppressWarnings("unchecked")
	public static Map<String, Object> getRequestScope() {
		return (Map<String, Object>) getVariableValue("requestScope");
	}

}

Work Smarter med Domino Designer

Der er i sær 2 ting der kan gøre din hverdag nemmere:

  1. OpenNTF import/export tool
  2. Code templates og snippets

OpenNTF Import/Export tool

Fra OpenNTF kan du genbruge en masse færdig og testet kode – lige fra små snippets til færdige applikationer. Med Import/Export toolet kan du med et enkelt klik kopiere design elementer ind i din applikation direkte fra OpenNTF.

Du installere det ved at trække denne extension.xml fil ind i din Widget sidebar (Enables via File, Preferences, Widgets). Herefter får du et nyt ikon i din designer toolbar:

12-09-2013 20-34-10

Vælg Import fra menuen og hent f.eks. XPages Debug Toolbar ind med et enkelt klik.

Code Templates og Snippets

Snippets:

Nye snippets oprettes nemt ved blot at markere en kode blok, højreklik på markering og vælg: ‘Add to Snippets’

Eksistende snippets kan blot hentes fra Snippets view (Window, Show Eclipse Views, Other, General\Snippets.)

Code templates:

Domino Designer Settings

Performance

Perspectives

  • Jeg bruger XPages perspective (Window, Open Perspective, XPages)
  • Via Window, Customize Perspective tilføjer jeg ‘Command, Java Coding’
  • Med Window, Show Eclipse Views henter jeg ‘Package Explorer’ og ‘Progress’
  • Husl at gemme dine ændringer: Window, Save Perspective As

Nyttige Preferences

File, Preferences, Domino Designer:

  • Enable Eclipse Plug-In install
  • LotusScript editor: Sæt Code Assistance til 0. Tilsvarende for XPages
  • Application Navigator: tilføj/fjern design elementer fra listen (Jeg har tilføjet alt, undtagen Data, Composite Applications og Navigators)
  • XPages: Manual Recompile
  • Source Control:
    – Use Binary DXL
    – Enable automatic Import/Export

File, Preferences, Generel:

  • Enable Show Heap Status
  • Workspace:
    – Disable ‘Build automatically’
    – Enable ‘Refresh automatically’
    – Text File Encodiing = Default
  • Editors, Text Editors, Spelling: Disable
  • Editors, Text Editors: Disable ‘Smart caret positioning at line start and end’

Help / Errors

  • Vælg Search Scope (fra Help, Search) – marker det indhold der er relevant
  • Problems Tab, Configure Content, Vælg “On any element in same project”

Working sets

  • Brug altid working sets. Under Preferences, Domino Designer sættes ‘When opening an application’ til ‘Ask Me’

Gem alle dine ændringer

  • Fra Package Explorer højreklik og vælg Export, General, Preferences, All
  • Med File, Import kan du altid få dine settings igen efter en reinstall eller på en anden maskine. Mine settings kan downloades her: domino

Links

tell http restart != restart task http

Brug “Restart task http” – den genstarter http tasken helt, i modsætning til “tell http restart” som blot laver en reset

Hvis du ikke udvikler på en lokal server (som du bør), så kan du lægge et ikon på din toolbar med denne command:

@Command([AdminRemoteConsole])

Dermed kan du hurtigt åbne en server consol op i en dialogboks – uden at skulle starte Administrator klienten …

Se også dette indlæg fra Thomas Gumz

Læs URL’en fra en Java Bean

Her et eksempel på hvordan du kan læse en URL parameter fra en JavaBean. Metoden debugMode returnere true hvie der i url’en står “debug=1”

import javax.faces.context.FacesContext;
import com.ibm.xsp.designer.context.XSPContext;
import com.ibm.xsp.designer.context.XSPUrl;

public boolean debugMode() {
	XSPUrl url = XSPContext.getXSPContext(FacesContext.getCurrentInstance()).getUrl();
	return url.getParameter("debug").equals("1");
}