1 19 package org.openharmonise.him.actions.publish; 20 21 import java.awt.event.*; 22 23 import javax.swing.*; 24 25 import org.openharmonise.him.actions.*; 26 import org.openharmonise.him.actions.rules.*; 27 import org.openharmonise.him.context.StateHandler; 28 import org.openharmonise.him.displaycomponents.table.*; 29 import org.openharmonise.him.harmonise.*; 30 import org.openharmonise.him.window.*; 31 import org.openharmonise.him.window.messages.builders.*; 32 import org.openharmonise.him.window.session.*; 33 import org.openharmonise.vfs.*; 34 import org.openharmonise.vfs.context.*; 35 import org.openharmonise.vfs.gui.*; 36 import org.openharmonise.vfs.status.*; 37 38 39 46 public class ActionPublishToInternet 47 extends AbstractHIMAction 48 implements HIMAction { 49 50 public static String ACTION_NAME = "PUBLISH"; 51 52 55 private static final String WAIT_LABEL = "PUBLISH-ACTION"; 56 57 60 public ActionPublishToInternet() { 61 super(); 62 this.setup(); 63 } 64 65 68 public ActionPublishToInternet(VirtualFile vfFile) { 69 super(vfFile); 70 this.setup(); 71 } 72 73 77 private void setup() { 78 RuleGroup andGroup = new RuleGroup(); 79 andGroup.setGroupType(RuleGroup.GROUPTYPE_AND); 80 PathRule pathRule = new PathRule("/webdav/Archive/"); 81 pathRule.setResultComparator(false); 82 andGroup.addEnableRule(pathRule); 83 isMetadataValidRule metadataRule = new isMetadataValidRule(); 84 metadataRule.setResultComparator(true); 85 andGroup.addEnableRule(metadataRule); 86 IsHistoricalRule histRule = new IsHistoricalRule(); 87 histRule.setResultComparator(false); 88 andGroup.addEnableRule(histRule); 89 SecurityRule secRule = new SecurityRule(VirtualFile.METHOD_CHECKIN); 90 andGroup.addEnableRule(secRule); 91 TabRule tabRule = new TabRule("Search"); 92 tabRule.setResultComparator(false); 93 andGroup.addEnableRule( tabRule ); 94 this.addEnableRule(andGroup); 95 } 96 97 100 public void actionPerformed(ActionEvent arg0) { 101 VirtualFile vfFile = this.getLastContextFile(); 102 StatusData statusOverall = new VFSStatus(); 103 AbstractVirtualFileSystem vfs = vfFile.getVFS(); 104 105 if (vfFile.isVersionable()) { 106 VersionedVirtualFile vfVerFile = (VersionedVirtualFile) vfFile; 107 108 String sLivePath = vfVerFile.getLiveVersionPath(); 109 110 StateHandler.getInstance().addWait(WAIT_LABEL); 111 String sFileName = null; 112 try { 113 sFileName = 114 vfFile.getVFS().getVirtualFileSystemView().getDisplayName( 115 vfFile); 116 String sMessage = null; 117 StatusData status = vfVerFile.checkin(); 118 statusOverall.addStatusData(status); 119 if(status.isOK()) { 120 121 if(sLivePath!=null) { 122 123 ResourceStatusWrapper pathStatus = vfs.getVirtualFile(sLivePath); 124 if(pathStatus.getResource()!=null) { 125 pathStatus.getResource().unlock(); 126 } 127 128 TableView table = DisplayManager.getInstance().getTable(); 129 if(table!=null) { 130 table.setSelectedPath(sLivePath); 131 } 132 if(sLivePath.startsWith(HarmonisePaths.PATH_PROPERTIES)) { 133 ContextEvent ce = new ContextEvent(ContextType.CONTEXT_METADATA_DEFINITION_CHANGED, "", vfFile.getVFS(), sLivePath); 134 ContextHandler.getInstance().fireContextEvent(ce); 135 } 136 } 137 super.fireSessionEvent("Published", this.getLastContextFile().getVFS(), this.getLastContextFile().getFullPath(), SessionEventData.RESOURCE_PUBLISHED); 138 } else { 139 140 } 141 } catch (Exception e) { 142 e.printStackTrace(System.err); 143 statusOverall.setStatusLevel(StatusData.LEVEL_ERROR); 144 } finally { 145 StatusMessage statusMessage = new StatusMessage(ActionPublishToInternet.ACTION_NAME, statusOverall); 146 statusMessage.setResourceTitle(sFileName); 147 if(sLivePath!=null) { 148 statusMessage.setPath(sLivePath); 149 } else { 150 statusMessage.setPath(vfFile.getFullPath()); 151 } 152 VFSMessageBuilder.getInstance().fireMessage( statusMessage ); 153 StateHandler.getInstance().removeWait(WAIT_LABEL); 154 } 155 } 156 } 157 158 161 public JMenuItem getMenuItem() { 162 JMenuItem menuItem = super.getMenuItem(); 163 menuItem.setAccelerator( 164 KeyStroke.getKeyStroke( 165 this.getAcceleratorKeycode(), 166 this.getAcceleratorMask())); 167 168 return menuItem; 169 } 170 171 174 public String getDescription() { 175 return "Publishes the currently seleted resource"; 176 } 177 178 181 public String getText() { 182 return "Publish"; 183 } 184 185 188 public String getToolTip() { 189 return this.getDescription(); 190 } 191 192 195 public Icon getIcon() { 196 return IconManager.getInstance().getIcon("16-command-publish.gif"); 197 } 198 199 202 public int getAcceleratorKeycode() { 203 return KeyEvent.VK_P; 204 } 205 206 209 public String getMnemonic() { 210 return "P"; 211 } 212 213 216 public int getAcceleratorMask() { 217 return InputEvent.CTRL_MASK; 218 } 219 220 223 public boolean isEnabled(ContextEvent ce) { 224 return super.isEnabled(ce); 226 } 227 228 } 229 | Popular Tags |