This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 416099 - [Workbench] Simplify SaveAllHandler
Summary: [Workbench] Simplify SaveAllHandler
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.4 M3   Edit
Assignee: Lars Vogel CLA
QA Contact: Paul Webster CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-28 18:11 EDT by Lars Vogel CLA
Modified: 2013-10-04 11:51 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2013-08-28 18:11:39 EDT
/*******************************************************************************
 * Copyright (c) 2010, 2011 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are 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:
 *     IBM Corporation - initial API and implementation
 ******************************************************************************/
package org.eclipse.e4.ui.internal.workbench.handlers;

import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.workbench.modeling.EPartService;

The current implementation of SaveAllHandler seems unnecessary complex. Why not change it do:

public class SaveAllHandler {

@CanExecute
boolean canExecute(@Optional EPartService partService) {
 if (partService != null) {
	return !partService.getDirtyParts().isEmpty();
  }
	
  return false;
}

	@Execute
	void execute(EPartService partService) {
		partService.saveAll(false);
	}
}


If that sounds reasonable, please let me know, I will create a patch via Gerrit.
Comment 1 Lars Vogel CLA 2013-09-03 05:24:27 EDT
Maybe better for the @Execute method:

@Execute
void execute(EPartService partService) {
  if (partService != null) {
    partService.saveAll(false);
}
Comment 2 Paul Webster CLA 2013-09-12 16:32:31 EDT
Sure, we can try that out ... please submit a gerrit review.

PW
Comment 3 Lars Vogel CLA 2013-09-30 15:44:36 EDT
https://git.eclipse.org/r/16897