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");
}

Brug Eclipse som IDE

eclipseI denne video “Setup Eclipse IDE for XPages Development” vises hvordan du kan sætte Eclipse op til både udvikling og debugning af Java til XPages. Mere info kan findes her: “XPages SDK for Eclipse RCP“.

Jeg har ikke helt kunne få det til at virke – men benytter selv et simplere alternativ hvor jeg udvikler og unit tester mine support klasser direkte i Eclipse og efterfølgende kopiere koden over i Notes.

I dette setup skal jeg blot inkludere et par jar filer, f.eks. Notes.jar som ligger under <notesprogram>\jvm\lib\ext – dette gøres via Build Path, Add External Archives... i Eclipse (højreklik på projekt for at finde menuen)

Øvrige jar filer kan findes typisk under <notesprogram>\osgi\rcp\eclipse\plugins. Brug evt. FindClass programmet til at søge:

  • java -jar findclass.jar UIComponent -classpath c:\notes

Links

Source Control i Domino med GIT/BitBucket

Her en lille simpel guide til at bruge source control i Domino Designer

GIT OG BITBUCKET

logomark-orangeFørst skal git downloades, installeres og konfigureres – herefter kan du oprette en konto på BitBucket.org. Det hele er beskrever i “Source Control with GIT and BitBucket” hvor du også finder links til andre guider.

OPSÆTNING I DDE

Sæt kryds i ‘Use Binary DXL for source control operations”. Denne setting findes under “File, Preferences, Domino Designer, Source Control

FRA NOTES TIL GIT 

1. Klarør database

I Package Exloprer finder du din eksisterende database. For at aktivere Source Control, så skal du højreklikke på basen og vælge ‘Team Development, Setup Source Control for this application

Gem projektet i en folder hvor du nemt kan finde det igen. Jeg gemmer selv alle mine projekter under c:\dev\<projectname>\nsf

Bemærk den ekstra folder ‘nsf’. Her gemmes alle notes design elementer – mens folderen over (c:\dev\<projectname>) benyttes af git. Det er vigtigt med denne adskillelse for ikke at blande git filer ind i notes databasen.

2. Commit til GIT

Fra en command prompt gør du følgende
> cd /path/to/my/repo
> git init
> git add *
> git commit -m “version 1.0”

3. Opret Repository at BitBucket.org

Gå ind på din BitBucket.org konto og opret et nyt Repository

4. Push

Fra en command prompt kan du nu nemt uploade dit projekt til BitBucket:

> cd /path/to/my/repo
> git remote add origin https://<accountname>@bitbucket.org/<accountname>/<projectname>.git
> git push -u origin –all

FRA BITBUCKET TIL NOTES

BITBUCKET1. Clone
Først laver du en klon af projektet – dvs. en kopi af filerne på BitBucket og ned lokalt på din egen maskine. Dette gøres nemt fra en command prompt:

> git clone https://<accountname>@bitbucket.org/<accountname>/<projectname>.git

2. Opret et “On Disk Project” i Domino Designer

For at få projektet ind i Domino Designer skal du højreklikke i din Package Explorer og vælge ‘New, Project…‘ (eller New, Java Project)

  • Vælg Java\Java Project
  • Location: Vælg din projekt folder (som du lige har hentet/oprettet med GIT CLONE)

3. Opret Notes database (NSF)
Højreklik på dit projekt i Package Explore. Vælg nu ‘Team Development, Associate with New NSF …’ for at oprette en Notes database

BRUG SOURCETREE
Syntes du også det er lidt nørdet at bruge command prompt? Så installer SourceTree

LINKS