Halaman

Subscribe:

Main Menu

Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Rabu, Juli 17, 2013

Custom Palette(Picture Box) di Java

Semalam ada saudara yang minta di ajarin untuk menampilkan Gambar di Java netbeans. aku jadi teringat dulu pernah bikin tutorial mengenai ini.Membuat picture box di java
Setelah aku membuka kembali tutorial yang aku buat. aku sendiri kok jadi bingung implementasinya gimana... hahaha... yang bikin aja bingung, apalagi orang lain? haha...
jadi sekarang aku berniat untuk membuat ulang tutorial tersebut, semoga tutorial kali ini lebih jelas dari sebelumnya.

Berikut Step by Step dalam pembuatan picture Box di java.
  • Buat class bernama PictureBox. berikut Codenya.
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JDesktopPane;
public class PictureBox extends JDesktopPane{
    public static String DEFAULT = "DEFAULT";
    public static String STRETCH = "STRETCH";
    public static String CENTER = "CENTER";
    public static String SCALE = "SCALE";
    private String url;
    private File file;
    private Image image;
    private String layout = STRETCH;

    public File getFile() {
        return file;
    }

Rabu, Juli 28, 2010

Ireport : Crosstab Group

Seharian kemarin saya disibukkan dengan pembuatan crosstab group. saya mencoba beberapa cara untuk menampilkan sebuah laporan yang bentuknya crosstab tapi juga di kelompokkan per pasien. saya sudah menemukan satu cara yang berhasil.

yaitu dengan cara membuat sebuah group pasien. lalu crosstab saya letakkan di detail. untuk querynya saya buatkan sub dataset dengan parameter pasien. dengan cara ini bisa menampilkan laporan sesuai yang saya inginkan. hanya saja kecepatannya masih jauh dari kurang. dikarenakan setiap pasien perlu mengeksekusi query terus menerus.

setelah mencoba berkali-kali masih tetap saja kecepatannya kurang memuaskan. tapi alhamdulillah dari sebuah forum saya menemukan sebuah cara untuk membuat crosstab group yang ternyata sudah di sediakan oleh ireport itu sendiri.

Cara membautnya yaitu seperti berikut

1. misalkan data yang ingin kita tampilkan seperti berikut
Pasien 1
      Tanggal           jasa sarana        jasa dokter
     -------------------------------------------------------------
     01/01/2010        1000                1500
     02/01/2010        1000                1500

Pasien 2
      Tanggal           jasa sarana        jasa dokter
     -------------------------------------------------------------
     01/01/2010        3000                1500
2. pertama buatkan query untuk menampilkan data tersebut dengan field2 sbb:
      Nama Pasien
      Tanggal
      Nama Tagihan
      Jumlah
3. tambahkan group pasien di ireport
4. di group header letakkan nama pasien
5. di group footer letakkan crosstab yang akan menampilkan detailnya
      Tanggal           jasa sarana        jasa dokter
     -------------------------------------------------------------
     01/01/2010        3000                1500
6. klik crosstab lalu klik kanan -> crosstab properties > crosstab data > reset type: set ke group. dan untuk reset group pilih group pasien
7. seharusnya dengan cara seperti ini sudah akan tampil laporan yang di inginkan. selesai :)

Sabtu, Oktober 31, 2009

Laporan Crosstab di Jasper

Kemarin barusan nyoba-nyoba bikin laporan crostab pake jasper.. ternyata cukup mudah. hasilnya juga lumayan bagus. caranya gini nech...

1. Buat query yang akan di tampilkan laporannya dalam bentuk crosstab.
contoh aja kayak gini

select patient_nm,gender from patient

2. Buat Laporan kosong di jasper
3. Tambahkan dataset baru dengan klik kanan window report inspector -> add Dataset
4. klik kanan lalu edit query di dataset yang tadi di buat
5. masukkan query yang tadi di buat


6. lalu pilih komponen crosstab di palette, drag and drop ke Band Detail


7. lalu akan muncul dialog wizard untuk membuat crosstab
8. step pertama pilih dataset yang tadi kita buart
9. step 2 tentukan baris yang akan di pakai dalam crostab kita.. untuk hal ini kita memakai patient_nm

Rabu, Mei 20, 2009

Building RCP Eclipse

mau nulis pake bahasa indonesia aja dech... capek pake ingris :D. hehehe... di buat variasi aja :D. kali ini saya mau nulis gimana cara buat RCP pada eclipse. kita bisa membuat sebuah aplikasi dengan memanfaatkan plugin-plugin yang di sediakan eclipse.

cara membuat nya sbb :

- yang perlu di siapkan pertama adalah eclipsnya. download eclipse versi RCP "Eclipse for RCP/Plug-in Developers".

-Setelah itu ekstrak dan jalankan eclipse

- pilih menu File-> New Project. dari list pilih "Plug-In Project".

- berikan nama sesuka anda terus klik next


- pastikan ada memilih yes pada pilihan Rich Client application



- terus pilih aja helloWorld untuk coba-coba aja



- abis itu udah klik2 next aja terus

- setelah selesai. akan ada satu project baru. project RCP kita :D.

- untuk menjalankan project buka file plugin.xml atau manifest.imf. pada tab overview klik launch an eclipse aplication. atau bisa klik kanan pada plugin.xml terus run as -> eclipse aplication

- seharunya jadinya seperti ini



Kamis, Mei 14, 2009

Developing WebService using Netbeans

Creating webservice using netbeans is very simple an easy. for my documentation only.. this is step by step creating webservice
  • Create your web aplication project by select File->New Project. and then choose Web Aplication
  • after you create your web aplication. you can add web service to your web aplication by select File->New File. and then choose Web Service.
  • give name for your web service and package. and then finish
  • Open your WebService in WebServices Directory.
  • in the design view you can add your method and in the code view you can code your own code :D.
  • then undeploy & deploy your web aplication
  • you can test your webservice by select your web service. then right click, choose Test WebService.
  • Finish :D.




Kamis, April 23, 2009

Maven Proxy

if your company have a proxy to connect internet. you need to modify your maven repository. so you can get repository from internet.

to add proxy in your maven you need to edit file settings.xml in your maven directory. add this code in settings.xml




<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>192.168.0.118</host>
<port>4001</port>
</proxy>
</proxies>





Selasa, April 14, 2009

Create war or ear File with eclipse

i didn't realize it before. that create war or ear wih eclipse is easy :D. you just choose menu file and then export. then choose war or ear. finish :D. 

Senin, April 13, 2009

Java : Send email with attachment

sometime we need to add attachment in our mail. in java we can MimeMessageHelper to add attachment in our mail.. this is the example code.


JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost("mail.host.com");

MimeMessage message = sender.createMimeMessage();

// use the true flag to indicate you need a multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo("test@host.com");

helper.setText("Check out this image!");

// let's attach the infamous windows Sample file (this time copied to c:/)
FileSystemResource file = new FileSystemResource(new File("c:/Sample.jpg"));
helper.addAttachment("CoolImage.jpg", file);

sender.send(message);

Selasa, April 07, 2009

Fork / Join in jBpm

what is fork / join ?. when i learn about jBpm i found this word. what is it? and what's for?

when you got a jobs. you can solved it easily if your job is small. but how if your job is too big and the time was not enough to do it by yourself? how will you do?

you can divide your jobs with your friend. it'll make your jobs easy to handle. right?

fork / join is used to divide the jobs or task in business process. in jBpm you can use this symbol to define fork and join




this is the example diagram implemented fork / join

from this diagram we can see that the process has divide into two proses left and right. 

Senin, April 06, 2009

Open Source Business Process Management ( jBPM vs Open WFE vs Enhydra Shark )

Business Process Management(BPM) / Workflow management systems (WFMSs) are software systems which support the execution of business processes in an organisation. They take care of the distribution of work (and associated data) to the right people at the right time. They are configured based on (often graphical) process models. Similar to database management systems.

There is a lot of BPM in Java. But there is only three BPM who usually use. (jBPM, Open WFE and Enhydra Shark).

jBpm is a flexible, extensible workflow management system. Business processes , expressed in a simple and powerfull language and packaged in process archives, serve as input for the jBpm runtime server. jBpm bridges the gap between managers and developers by giving them a common language : the jBpm Process definition language (jPdl).

OpenWFE is an open source java workflow engine. It is a complete Business Process Management suite, with 4 components : an engine, a worklist, a webclient and a reactor (host for automatic agents). A python access library is available : your python application / client can interact with an OpenWFE REST worklist.


Shark is an extendable workflow engine framework including a standard implementation completely based on WfMC specifications using XPDL (without any proprietary extensions !) as its native workflow process definition format and the WfMC "ToolAgents" API for serverside execution of system activitie

If we compare those BPM. there is none of offerings stands out as being clearly superior to the others. although it can be argued that OpenWFE demonstrates a marginally wider range of features, whilst Enhydra Shark and jBPM clearly lag behind in terms of overall patterns support. OpenWFE tend to demonstrate broader pattern support in their corresponding tool classes (i.e. open source vs proprietary), especially in the control-flow perspective. Moreover, it can also be observed that the proprietary tools are generally better equipped in the resource perspective and better able to support interaction with the external environment, whereas the open source systems essentially rely on their users having programming experience (e.g.
Java) to achieve the required integration with other systems. In the data perspective jBPM, relying heavily on Java coding for data passing and manipulation, clearly lags behind the other offerings.

Overall one can conclude that the open source systems are geared more towards developers than business analysts. If one is proficient with Java, jBPM may be a good choice, although if not, choosing jBPM is less advisable. Similarly,
whilst OpenWFE has a powerful language for workflow specification in terms of its support for the workflow patterns, we postulate that it will be difficult to understand by non-programmers. Finally, Endydra Shark’s minimalistic support
for the workflow patterns may require complicated work-arounds for capturing nontrivial business scenarios. This situation is a marked contrast to the database field where open source database management systems are accessible to
a much broader audience.

Jumat, April 03, 2009

JBPM :: Pengertian Table jBPM ( Definition )

ini nech pengertian atau fungsi tiap table dari database jBPM. bagian pertama dulu yach... (Definition) ntar masih ada lagi. yaitu Execution. perbedaanya Definition itu table2 yang di pake jBPM untuk menyimpan process definition ( Diagram ) ke dalam database.


JBPM Database
No Nama Table Keterangan
1
jbpm_action Menyimpan Informasi tentang kejadian pada process definition


id_ bigint NOT NULL, id table


"class" character(1) NOT NULL,


name_ character varying(255),


ispropagationallowed_ boolean,


actionexpression_ character varying(255),


isasync_ boolean,


referencedaction_ bigint, action ini mereference ke action yang lain


actiondelegation_ bigint, Delegation / java class yang mana


event_ bigint, yang mentrigger action


processdefinition_ bigint, Kejadian pada process definition yang mana


timername_ character varying(255),


duedate_ character varying(255), action berakhir kapan


repeat_ character varying(255), action berulang tiap


transitionname_ character varying(255),


timeraction_ bigint, jika memakai timer action


expression_ character varying(4000),


eventindex_ integer,


exceptionhandler_ bigint, exception handler untuk action ini


exceptionhandlerindex_ integer








2
jbpm_decisionconditions Menyimpan informasi kondisi /expresi untuk perpindahan state


decision_ bigint NOT NULL, Decision untuk node


transitionname_ character varying(255),


expression_ character varying(255),


index_ integer NOT NULL








3
jbpm_delegation Menyimpan informasi java class yang di spesifikasikan di process defininition ( untuk kondisi pindah state )


id_ bigint NOT NULL, id table


classname_ character varying(4000), nama class java


configuration_ character varying(4000), Konfigurasi / input ke java


configtype_ character varying(255), tipe config


processdefinition_ bigint Foregn key ke process definition








4
jbpm_event menyimpan informasi object yang mentrigger perpindahan state / task pada process definisi


id_ bigint NOT NULL, id table


eventtype_ character varying(255), tipe event ( task-create, node-leave dll )


type_ character(1),


graphelement_ bigint,


processdefinition_ bigint, FK ke process definition, terisi jika yang mentrigger process definition


node_ bigint, FK ke node, terisi jika yang mentrigger node


transition_ bigint, FK ke transition , terisi jika yang mentrigger transition


task_ bigint FK ke task, terisi jika yang mentrigger task








5
jbpm_exceptionhandler menyimpan informasi ketika terjadi error pada pada process


id_ bigint NOT NULL, id table


exceptionclassname_ character varying(4000), class exception


type_ character(1),


graphelement_ bigint,


processdefinition_ bigint,


graphelementindex_ integer,


node_ bigint,


transition_ bigint,


task_ bigint








6
jbpm_moduledefinition menyimpan data module yang dipakai pada process definisi


id_ bigint NOT NULL, id table


class_ character(1) NOT NULL, class module


name_ character varying(4000), nama class module


processdefinition_ bigint, FK ke process definition


starttask_ bigint FK task mulai pada process defintiion








7
jbpm_node Menyimpan data node pada process definition


id_ bigint NOT NULL, id table


class_ character(1) NOT NULL, class node ( E = end , R = start dll)


name_ character varying(255), nama node


processdefinition_ bigint, Node untuk process definition yang mana


isasync_ boolean,


action_ bigint, menspesifikasikan action class yang di jalankan node


superstate_ bigint, node memiliki super state


subprocessdefinition_ bigint, sub process dari process definition ( sub process akan di jalankan sebelum node berpindah ke node yang lain )


decisionexpression_ character varying(255),


decisiondelegation bigint, keputusan di ambil dari delegation / class


signal_ integer,


createtasks_ boolean,


endtasks_ boolean,


nodecollectionindex_ integer












8
jbpm_processdefinition menyimpan data umum process definition


id_ bigint NOT NULL, id table


name_ character varying(255), nama process definition


version_ integer, versi


isterminationimplicit_ boolean,


startstate_ bigint node awal








9
jbpm_swimlane Menyimpan data swimlane yang di definisikan di process definisi


id_ bigint NOT NULL, id table


name_ character varying(255), nama swimlan


actoridexpression_ character varying(255),


pooledactorsexpression_ character varying(255),


assignmentdelegation_ bigint, FK delegation table


taskmgmtdefinition_ bigint FK module definition








10
jbpm_task menyimpan informasi tentang job yang di definisikan di process definition


id_ bigint NOT NULL, id table


name_ character varying(255), nama task


processdefinition_ bigint, FK process definition


description_ character varying(4000), Keterangan


isblocking_ boolean,


issignalling_ boolean,


duedate_ character varying(255),


actoridexpression_ character varying(255),


pooledactorsexpression_ character varying(255),


taskmgmtdefinition_ bigint, Module yang dipakai


tasknode_ bigint,


startstate_ bigint, start state


assignmentdelegation_ bigint, delegation


swimlane_ bigint, swimlane


taskcontroller_ bigint task controller








11
jbpm_taskcontroller menyimpan informasi hubungan dari task ke delegation


id_ bigint NOT NULL,


taskcontrollerdelegation_ bigint Menspesifikasikan class yang di pakai controller








12
jbpm_variableaccess menyimpan variable untuk pindah state.. ( pindah state di tentukan klik dari user :: approve / reject )


id_ bigint NOT NULL, id table


variablename_ character varying(255), nama variable


access_ character varying(255), access.. read write dll


mappedname_ character varying(255), tombol pilihan


processstate_ bigint, variable untuk node


taskcontroller_ bigint, variable untuk task


index_ integer,


script_ bigint variable untuk action




Senin, Maret 23, 2009

Source Code Program Terbilang

buat dokumentasi aja.. pernah di tes suruh buat program kayak gini... :D. menerjemahkan angka ke huruf ( terbilang ). ini source nya..


final String arrSatuan[] = { ""," se" , " dua" , " tiga" , " empat" , " lima" , " enam" ,
" tujuh" , " delapan" , " sembilan" };
final String arrRibuan[] = { " " ," ribu" , " juta" , " milyar" };
String strAngka=String.valueOf(angka);
terbilang = "";
for (int i = 0; i < strAngka.length(); i++) {
int c = Integer.valueOf(String.valueOf(strAngka.charAt(i)));
int urutan=strAngka.length()-i-1;
switch (urutan%3) {
case 0:
if(c==1&& ((int)(urutan/3))!=1)
terbilang+=" satu";
else
terbilang+=arrSatuan[c];
terbilang+=arrRibuan[(int)(urutan/3)];
break;





case 1:
if(c==1){
i++;
c = Integer.valueOf(String.valueOf(strAngka.charAt(i)));
urutan=strAngka.length()-i-1;
terbilang+=arrSatuan[c];
if(c!=0)
terbilang+=" belas";
terbilang+=arrRibuan[(int)(urutan/3)];
}else{
terbilang+=arrSatuan[c];
if(c!=0)
terbilang+=" puluh";
}
break;
case 2:
terbilang+=arrSatuan[c];
if(c!=0)
terbilang+=" ratus";
break;
default:
terbilang+=arrSatuan[c];
break;
}

}

Jumat, Maret 13, 2009

Ngirim Email pake Java

Ilmu baru lagi di dunia java :D. yaitu cara ngirim email lewat java. caranya gini..

Siap kan email yang akan di kirim


SimpleMailMessage message = new SimpleMailMessage();
message.setFrom( alamatEmail yang ngirim );
message.setTo( alamatEmail Tujuan );
message.setCc( alamatEmail CC (kalo ada) );
message.setBcc( alamatEmail Bcc (Kalo ada) );
message.setText( Isi email );
message.setSubject( Judul );



Trus kirim :D


JavaMailSenderImpl mailSender=new JavaMailSenderImpl();
mailSender.setHost( ip/alamat server email );
mailSender.send(message);


Sudaaaah

Jumat, Maret 06, 2009

Smart Client : Java vs .Net

SMART CLIENT

Untuk membuat smart client, yang pertama musti di lakukan adalah memisah bisnis proses dari sistemnya. Proses / kegiatan yang paling sering di gunakan di proses di client. Dan proses utama dan jarang di pakai di proses di server.

Jadi nanti akan ada dua system. Server dan client.
• Server menyimpan Database dan bisnis proses yang utama.
• Client yang menyediakan tampilan dan memproses bisnis proses yang sering di pakai. Dan juga database kecil untuk menyimpan data-datanya.

Saat kondisi offline user bisa mengerjakan proses yang ada di client. Tapi tidak biss melakukan proses yang ada di server.

Saat kondisi online user bisa melakukan update data atau proses data ke server.



Teknologi yang di pakai
• .Net
  • Untuk Teknologi tampilan( tampilan di sini dalam artian tampilan smart client, yang harus bisa seperti desktop dan bisa update otomatis ) .Net memakai No-Touch Deployment. Tapi prosesnya perlu memisahkan logika aplikasi dari kode. Masih kalah jauh di banding dengan JWS.
  • Kelebihan memakai .Net adalah .Net sudah menyediakan dengan baik untuk teknologi ini. Untuk sincronisasi data dan lain-lain. .Net sudah menyediakan ADO.Net untuk mengaturnya. Dan sudah di berikan aturan-aturan bagaimana kalau terjadi seperti ini dan itu. Untuk menjaga terjadi conflict data
• Java

  • tampilan bisa memakai: Ajax atau JWS
  • Teknologi proses data bisa memakai Webservice atau EJB. digunakan untuk pertukaran data dari client ke server. Dan juga sebaliknya, Kedua teknologi tsb adalah teknologi untuk melakukan pertukaran data. Jadi masih belum bisa mengatur pencegahan data conflict. Di program kita sendiri yang harus mengatur tersebut.

Kelebihan dan Kekurangan
• Java memiliki kelebihan di sisi Teknologi tampilan smart client ( updatenya ) dengan memakai JWS. Kita bisa mudah membuat tampilan smart client. Kekurangannya dalam hal sinkronisasi data. Java masih belum mendukungnya
• .Net memiliki kelebihan di dalam sinkronisasi data. Kekurangannya dalam tampilan. Teknologi No-Touch Deployment masih kalah di banding JWS.


Buat File Pdf pake Java

kali ini saya mau nulis gimana caranya buat file pdf pakai java. di java sudah ada class namanya PdfWriter. dengan memakai ini. kita bisa buat file pdf :). caranya gini....

step 1: Buat document-object nya

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

step 2: Buat writernya.. ( Pdf Writer )

PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream(namaFile));
writer.setPageEvent(this);

step 3: buka Dokumennya

document.open();


step 4. skarang tinggal kita mau nulis apa... misalnya kita nulis Hello World :D.

Chunk chunk = new Chunk(" ");
chunk.setFont(new Font(Font.COURIER, 24, Font.BOLD));
document.add(new Paragraph(chunk));
chunk = new Chunk("Hello World");
chunk.setFont(new Font(Font.HELVETICA, 18, Font.BOLD));
document.add(new Paragraph(chunk));


Step 5. tutup dokumennya

document.close();

Step 6. sudah selesai

Kamis, Maret 05, 2009

Smart Client

Kali ini saya di suruh research tentang smart client. hal yang perlu di ketahui adalah.. apa itu smart client? gak tahu :D. aku juga baru denger waktu itu... hehehehe...

setelah search di google. tentang smart client.. aku mendapatkan beberapa istilah yang berhubungan dengan smart client.

pada intinya sebuah software itu bisa di bagi menjadi 2 macam. yaitu : thin client atau thick client(fat client)

1. thin client
thin client itu artinya clientnya kecil :D. hehehe... gampangnya sech softwarenya dalam bentuk website. :D. hubungannya itu kalo website kan clientnya kecil yaitu browser saja. gak perlu pake yang lain. fokus di server. keuntungannya itu kalo ada software update cukup ke server saja gak perlu client di update juga :D.

2. thick client
artinya itu clientnya gede alias gendut :D. kalo thick client itu softwarenya dalam bentuk desktop. kalo software kayak gini kan kita perlu nginstal di tiap pc alias client. jadi makanya di namakan client gede :D. keuntungannya itu tampilannya bisa enak bisa macem2 gak kayak website cuman bentuk text dan variasinya gitu aja. kalo pake desktop bisa di kasih macem2. cuman kelemahannya kalo update software susah :D.



SMART CLIENT
kalo smart client itu solusi dari kelemahan kedua jenis software tersebut. jadi nantinya di software kita tampilannya bisa bagus. kayak desktop gitu bisa langsung drag and drop. dan juga gak perlu update ke tiap client, kalo misalnya ada update terbaru.

Solusi yang di pake itu bisa pake Java Web Start (JWS) atau pake Ajax. kalo pake Java Web Start (JWS). untuk membukanya masukkan url ke browser.. nanti otomatis akan keluar program desktop di pc kita. program ini di ambil dari server. dan akan terus mengecek kalo ada versi terbaru maka download lagi... :). kalo pake ajax. sama aja kayak software website. cuman tampilannya udah kayak desktop. bisa drag and drop. bisa macem2 mirip kayak desktop :).


Rabu, Maret 04, 2009

Java : Template Word

Dalam Project kali ini saya mendapatkan ilmu baru lagi. yaitu membuat laporan bentuk pdf dengan Template dari word. jadi kita membuat templatenya. yaitu design laporannya dari word. terus dari template itu kita mengisikan data-datanya dari database kita. terus kita bisa membuatnya menjadi file pdf. sehingga memudahkan user untuk mau apa aja setelah itu :D. dan juga user bisa mengedit atau membuat templatenya sendiri :D.

cara membuatnya gini nech..
Step 1: Buat Template
1. Buat file microsoft word
2. Pilih menu :Insert -> Field
3. pada kolom Field names list, pilih MergeField.
4. pada textbox Field name masukkan nama field yang akan di generate. contoh saja nama. nanti hasilnya akan tampil seperti ini

<<nama>>



Step 2 : buat Coding javanya :D
nech contoh codenya..


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.softartisans.wordwriter.WordTemplate;

public class WwServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Object[] arrValue = {"Ali Bastomi"};
String[] arrName = {"nama"};

WordTemplate oWW = null;

String templateFile = "/Basic/StringVar/StringVarTemplate.doc";

InputStream iStream = null;

try
{
oWW = new WordTemplate();

ServletContext ctx = this.getServletContext();
iStream = new BufferedInputStream(ctx.getResourceAsStream(templateFile));

oWW.open(iStream);

oWW.setDataSource(arrValue, arrName);

oWW.process();

oWW.save(response, "StringVarOutput.doc", false);
}
catch(Exception ex)
{
response.resetBuffer();
response.getWriter().println("An exception has occurred
" + String.valueOf(ex));
}
finally
{
if(iStream!=null)
iStream.close();
}
}
}


code di atas untuk mengenerate dari template menjadi fileinputstream. setelah itu bisa kita apakan sesuai keinginan kita. misalnya di jadikan file pdf... contoh sourcenya nanti aja dech... kapan2 di lanjut :D hehehehehe..

oh iya untuk perulangan seperti table. bisa kita gunakan fasilitas bookmark :D.

Selasa, Februari 10, 2009

Kalimah thoyyibah di tubuh ikan

ikan-dengan-kalimah-thoyyibah.jpg

Subhanalloh, itu mungkin kata yang bisa kita ucapkan, satu lagi tanda kebesaran dan kebenaran ajaran agama islam ditunjukkan oleh Alloh SWT. Kepada umat manusia. Seekor ikan sepat yang merupakan peliharaan salah satu keluarga PP. Langitan Widang Tuban, Ust. Miftahul Munir, ditubuhnya terukir kalimat thoyyibah “LAILAHA ILLALLOHU” (Tiada Tuhan selain Alloh).

Pada awalnya, Ust. Miftahul Munir sendiri tidak menyadari hal tersebut, sampai salah satu tamu yang berkunjung ke rumah beiau memberitahukan bahwa ditubuh ikan tersebut terukir kalimat thoyyibah “lailaha illalloh”.

Untuk membuktikan keasliannya, pengunjung bisa melihat dan mendownload video (dalam format *. avi). Sengaja format video kami convert untuk mengecilkan kapasitasnya.

Dan untuk konfirmasi bisa langsung menghubungi ust. Mitahul Munir di +6281931001034 atau

** dikutip dari http://langitan.net/?p=401

Jumat, Februari 06, 2009

HTML Area di Tapestry

kadang kita butuh untuk memakai component ini. saat kita mau mengisi berita atau mengepost blog. kita butuh HTML Area untuk memudahkan user mengisi dan menulis beritanya. agar nanti saat tampil di halaman berita bisa tampil sesuai keinginan kita.

cara memakai HTML Area di tapestry adalah sbb :
pertama di project.xml tambahi component html area

<dependency>
<groupId>htmlarea</groupId>
<artifactId>htmlarea</artifactId>
<version>3.3</version>
<type>jar</type>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>

<dependency>
<groupId>htmlarea</groupId>
<artifactId>jazzy</artifactId>
<version>1.1</version>
<type>jar</type>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>


trus di tapestry.application nya

tambahi baris seperti ini

<library id="htmlarea" specification-path="/org/rz/htmlarea/htmlarea.library" />


terus tinggal kita set type componentnya menjadi html area. contohnya seperti ini

<input jwcid="@htmlarea:HtmlArea" value="ognl:berita.nws_title" />


Selasa, Januari 27, 2009

Tapestry 3 :: Checkbox

sekarang aku nulis ilmu yang ku dapat hari ini. yaitu tapestry pake Checkbox. langsung aja dech.. contohnya kayak gini...

misalnya kita pengen nampilkan chekbox periode bulan atau tahun...

halaman .page nya kayak gini


<component id="periodeType" type="RadioGroup">
<binding name="selected" expression="periodType"/>
</component>

<component id="periodeBulan" type="Radio">
<binding name="value" expression="0"/>
</component>

<component id="periodeTahun" type="Radio">
<binding name="value" expression="1"/>
</component>



.html nya kayak gini

<span jwcid="periodeType">
<tr>
<td rowspan="2" class="TitleLeft">Masa</td>
<td>
<span jwcid="periodeBulan" />
Bulan 
<span jwcid="bulan" />
<span jwcid="tahun1" />
</td>
</tr>
<tr>
<td>
<span jwcid="periodeTahun" />
Tahun
<span jwcid="tahun2" />
</td>
</tr>

</span>


dan yang terakhir .java nya kayak gini



private void setPeriodeType(int type){
this.periodeType=type;
}

private int getPeriodeType(){
return periodeType;
}