2012年3月7日水曜日

自社用業務システムを簡単に作ってみる AIR+BlazeDS+Spring その3

すべての工程と備考を表示するようにしてみます。
備考欄は設けていなかったので、サーバ側の IWork から修正します。

public interface IWork {
 public Long getId();
 public void setId(Long id);
 public String getName();
 public void setName(String name);
 public List getJobs();
 public void setJobs(List jobs);
 public String getRemark();
 public void setRemark(String remark);
}
SiteMaking.javaも修正
@Entity
public class SiteMaking implements IWork{
 @Id @GeneratedValue
 private Long id;
 private String name;
 private List jobs;
 private String remark;
 
 public SiteMaking(){
  jobs = new ArrayList();
  for(SiteMakingJob job : EnumSet.allOf(SiteMakingJob.class)){
   jobs.add(new Job(job.toString()));
  }
 }
 
 public Long getId() {
  return this.id;
 }

 public void setId(Long id) {
  this.id = id;
 }

 public String getName() {
  return this.name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public List getJobs() {
  return this.jobs;
 }

 public void setJobs(List jobs) {
  this.jobs = jobs;
 }

 public String getRemark() {
  return this.remark;
 }

 public void setRemark(String remark) {
  this.remark = remark;
 }

}
UserServiceも変更しておきます。
 public List getWorks(){
  List list = new ArrayList();
  SiteMaking work = new SiteMaking();
  work.setId(1L);
  work.setName("どこどこ店");
  work.setRemark("備考です");
  list.add(work);
  return list;
 }
クライアント側にも備考 remark を追加
 [Bindable]
 [RemoteClass(alias=“jp.co.bzc.biz.xxxx.model.SiteMaking”)]
 public class SiteMaking
 {
  public var id:Number;
  public var name:String;
  public var jobs:ArrayCollection;
  public var remark:String;
 }
AS3では、enumがないので、以下でお茶を濁します。
 [Bindable]
 public class SiteMakingJob
 {
  public static var 受注:String = "受注";
  public static var 原稿:String = "原稿";
  public static var ドメイン取得:String = "ドメイン取得";
  public static var サーバ構築:String = "サーバ構築";
  public static var 証明写真:String = "証明写真";
  public static var 作業写真:String = "作業写真";
  public static var 制作作業:String = "制作作業";
  public static var 仮仮アップ:String = "仮仮アップ";
  public static var 仮アップ:String = "仮アップ";
  public static var 公開:String = "公開";
  public static var GA設定:String = "GA設定";
 }
WorkList.mxml をいじります。

抜粋 DataGrid部
 
  
   
    
    
    
    
    
    
    
    
    
    
    
    
    
   
  
 
抜粋 ラベルファンクション
   public function label_job(item:Object,gc:GridColumn):String{
    for each(var job:Job in item.jobs){
     if(job.name == gc.headerText){
      return job.jobStatus;
     }
    }
    return "";
   }
それっぽくなってきました。


0 件のコメント:

コメントを投稿