/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.propertieseditor;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.propertieseditor.bundlemodel.*;
import org.jboss.tools.common.model.ui.action.CommandBar;
import org.eclipse.swt.graphics.Color;
public class BundleLocaleEditor extends PropertiesEditor {
BundleModel bundleModel;
public void dispose() {
super.dispose();
if (bundleModel!=null) bundleModel.dispose();
bundleModel = null;
}
public void setBundleModel(BundleModel bundleModel) {
this.bundleModel = bundleModel;
}
protected Color getItemColor(int i) {
if(bundleModel == null) return DEFAULT_COLOR;
XModelObject o = helper.getModelObject(i);
PropertyModel pm = bundleModel.getPropertyModel(o, bundleModel.getCurrentLocale());
if(pm == null) return GREYED_COLOR;
return(pm.hasValue(bundleModel.getCurrentLocale())) ? DEFAULT_COLOR : GREYED_COLOR;
}
protected void edit() {
XModelObject o = helper.getModelObject(xtable.getSelectionIndex());
if(o != null) {
callAction(o, "Properties.Edit"); //$NON-NLS-1$
updatePropertyModel();
}
}
protected void add() {
long ts = helper.getModelObject().getTimeStamp();
super.add();
updatePropertyModel();
if(ts != helper.getModelObject().getTimeStamp()) bundleModel.setModified(true);
}
protected void delete() {
long ts = helper.getModelObject().getTimeStamp();
super.delete();
if(ts != helper.getModelObject().getTimeStamp()) bundleModel.setModified(true);
}
private void updatePropertyModel() {
XModelObject o = helper.getModelObject(xtable.getSelectionIndex());
if(o == null) return;
PropertyModel pm = bundleModel.getPropertyModel(o, bundleModel.getCurrentLocale());
if(pm != null) pm.commit();
}
protected boolean isReadOnly() {
return (bundleModel == null || !bundleModel.isEditable());
}
protected void setMargins(CommandBar bar) {
bar.getLayout().setMargins(10,10,0,5);
}
}